From 8c37a9c2ef179a6fda64577611fa27eab666c2a5 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Mon, 1 Sep 2025 16:22:06 +0100 Subject: [PATCH] lib/pool: fix flaky test which was causing timeouts This puts a limit on the number of allocation failures in a row which stops the test timing out as the exponential backoffs get very large. --- lib/pool/pool_test.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/pool/pool_test.go b/lib/pool/pool_test.go index 254ac01f2..0be3e2400 100644 --- a/lib/pool/pool_test.go +++ b/lib/pool/pool_test.go @@ -16,16 +16,23 @@ import ( // makes the allocations be unreliable func makeUnreliable(bp *Pool) { + const maxFailsInARow = 10 + var allocFails int bp.alloc = func(size int) ([]byte, error) { - if rand.Intn(3) != 0 { + if rand.Intn(3) != 0 && allocFails < maxFailsInARow { + allocFails++ return nil, errors.New("failed to allocate memory") } + allocFails = 0 return make([]byte, size), nil } + var freeFails int bp.free = func(b []byte) error { - if rand.Intn(3) != 0 { + if rand.Intn(3) != 0 && freeFails < maxFailsInARow { + freeFails++ return errors.New("failed to free memory") } + freeFails = 0 return nil } }