mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-07 17:15:56 +00:00
bump timeouts on single-writer RBF Tx test
There's no correct timeout value here, really, but the intent of this is that we first want to be sure that a second tx doesn't successfully start before the first exits, and then that the second *does* successfully start *after* the first exits. Unfortunately, there's no guarantees on timely processing, and in reality, CI can break us by waiting more than 10ms before we get enough CPU time to do something. More generally, there's no way to make a test like this work correctly -- no matter how long you wait for the second Tx to start before closing the first one, it's always possible that it *would* have started just a millisecond later even without you closing the first one. And similarly, no matter how long you give it to start when it's *supposed* to, it could always take longer. We could in principle just set this to wait for the second Tx to start and rely on the test timeout killing us if it doesn't, but then we don't get a useful message. Let's optimistically hope that 10 seconds is long enough for a trivial rollback to happen, since that doesn't need to imply writes. And I think 50ms is a better bet for the first test, although that does make this test close to 5x slower on non-CI hardware.
This commit is contained in:
parent
b40c86c278
commit
d50065a16f
1 changed files with 2 additions and 2 deletions
|
|
@ -140,14 +140,14 @@ func TestTx_CommitRollback(t *testing.T) {
|
|||
select {
|
||||
case <-ch1:
|
||||
t.Fatal("second tx started while first tx active")
|
||||
case <-time.After(10 * time.Millisecond):
|
||||
case <-time.After(50 * time.Millisecond):
|
||||
}
|
||||
|
||||
// Finish first transaction.
|
||||
close(ch0)
|
||||
select {
|
||||
case <-ch1:
|
||||
case <-time.After(10 * time.Millisecond):
|
||||
case <-time.After(10 * time.Second):
|
||||
t.Fatal("second tx should have started after first tx closed")
|
||||
}
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue