Fix LMDB reader slot exhaustion in `wallet.password_race_corrupt_seed` (#5204) The test started 300 threads that rekey or enter the password. Each password attempt and successful rekey refreshes the representative keys cache, which opens a wallet read transaction before waiting on the wallets mutex, so every queued thread holds one of the 126 reader slots LMDB provides by default. On CI enough threads queued up to exhaust them and the test aborted with MDB_READERS_FULL. Ten groups of three threads stay well below the limit. The wallet write transaction serializes the operations either way, so the extra threads added queueing, not interleavings.
__________
Type: commit
Hash: 3d0e33a231e4ff7477e04c8993743549afa66565
Created: yesterday
__________
gr0v1ty/nano-node:3d0e33a231e4ff7477e04c8993743549afa66565
| Test Case | Status | Duration | Median Deviation | Log | Graph |
|---|---|---|---|---|---|
| 5n4pr_conf_10k_bintree | PASS | 120 s | 4.0 s | - | Show |
| 5n4pr_conf_10k_change | PASS | 151 s | 0.0 s | - | Show |
| 5n4pr_conf_change_dependant | PASS | 108 s | -6.0 s | - | - |
| 5n4pr_conf_change_independant | FAIL | 1581 s | 1463.0 s | Show | - |
| 5n4pr_conf_send_dependant | PASS | 114 s | -2.0 s | - | - |
| 5n4pr_conf_send_independant | PASS | 110 s | -3.0 s | - | - |
| 5n4pr_rocks_10k_bintree | PASS | 115 s | -3.0 s | - | - |
| 5n4pr_rocks_10k_change | PASS | 161 s | -8.0 s | - | - |