You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Working on a project using https://github.com/jmoiron/sqlx, I ran into this issue when using PrepareContext()/QueryRowContext with a context with timeout.
The following test case exercises the problem
func TestIssue1046(t *testing.T) {
ctxTimeout := time.Second * 2
sleepSQL := `SELECT pg_sleep(10) AS id`
db := openTestConn(t)
defer db.Close()
ctx, cancel := context.WithTimeout(context.Background(), ctxTimeout)
defer cancel()
stmt, err := db.PrepareContext(ctx, sleepSQL)
if err != nil {
t.Fatal(err)
}
var d []uint8
err = stmt.QueryRowContext(ctx).Scan(&d)
dl, _ := ctx.Deadline()
since := time.Since(dl)
if since > ctxTimeout {
t.Logf("FAIL %s: query returned after context deadline: %v\n", t.Name(), since)
t.Fail()
}
expectedErr := &Error{Message: "canceling statement due to user request"}
if err == nil || err.Error() != expectedErr.Error() {
t.Logf("ctx.Err(): [%T]%+v\n", ctx.Err(), ctx.Err())
t.Logf("got err: [%T] %+v expected err: [%T] %+v", err, err, expectedErr, expectedErr)
t.Fail()
}
}
The text was updated successfully, but these errors were encountered:
Working on a project using https://github.com/jmoiron/sqlx, I ran into this issue when using
PrepareContext()
/QueryRowContext
with a context with timeout.The following test case exercises the problem
The text was updated successfully, but these errors were encountered: