From feef1fb3a2916aa40b76a54c804fc692ac8df623 Mon Sep 17 00:00:00 2001 From: LarryArnault45 Date: Thu, 7 May 2026 14:21:52 +0800 Subject: [PATCH] ethclient: bound tx indexing wait in tests --- ethclient/ethclient_test.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/ethclient/ethclient_test.go b/ethclient/ethclient_test.go index fca2f46e63..f8c760646a 100644 --- a/ethclient/ethclient_test.go +++ b/ethclient/ethclient_test.go @@ -124,11 +124,25 @@ func newTestBackend(config *node.Config) (*node.Node, []*types.Block, error) { return nil, nil, fmt.Errorf("can't import test blocks: %v", err) } // Ensure the tx indexing is fully generated - for ; ; time.Sleep(time.Millisecond * 100) { + timeout := time.NewTimer(30 * time.Second) + defer timeout.Stop() + ticker := time.NewTicker(100 * time.Millisecond) + defer ticker.Stop() + var lastErr error + for { progress, err := ethservice.BlockChain().TxIndexProgress() + lastErr = err if err == nil && progress.Done() { break } + select { + case <-timeout.C: + if lastErr != nil { + return nil, nil, fmt.Errorf("tx indexing did not complete within 30s: %v", lastErr) + } + return nil, nil, fmt.Errorf("tx indexing did not complete within 30s") + case <-ticker.C: + } } return n, blocks, nil }