Skip to content

Commit 89ba890

Browse files
committed
test: indexes, fix on error infinite loop
As index sync failures trigger a shutdown request without notifying BaseIndex::BlockUntilSyncedToCurrentChain in any way, we also need to check whether a shutdown was requested or not inside 'IndexWaitSynced'. Otherwise, any error inside the index sync process will hang the test forever.
1 parent cf4da5e commit 89ba890

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/test/util/index.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,18 @@
55
#include <test/util/index.h>
66

77
#include <index/base.h>
8+
#include <shutdown.h>
9+
#include <util/check.h>
810
#include <util/time.h>
911

1012
void IndexWaitSynced(const BaseIndex& index)
1113
{
1214
while (!index.BlockUntilSyncedToCurrentChain()) {
15+
// Assert shutdown was not requested to abort the test, instead of looping forever, in case
16+
// there was an unexpected error in the index that caused it to stop syncing and request a shutdown.
17+
Assert(!ShutdownRequested());
18+
1319
UninterruptibleSleep(100ms);
1420
}
21+
assert(index.GetSummary().synced);
1522
}

0 commit comments

Comments
 (0)