Avoid tcp channel close deadlock (#5079) * Avoid tcp channel close deadlock Swap the channel set out from under tcp_channels::mutex before closing entries. This avoids holding the mutex while close paths block on io_context shutdown. * Avoid mutex nesting in bootstrap maintenance Rename the cleanup loop and thread to maintenance since it now handles broader periodic work. Snapshot bootstrap channels without holding the bootstrap mutex before syncing peer scoring, avoiding network mutex nesting under the bootstrap lock.
__________
Type: commit
Hash: 96aa784aecc0242157985579a937bc7075fa2b59
Created: 2 day(s) ago
__________
gr0v1ty/nano-node:96aa784aecc0242157985579a937bc7075fa2b59
| Test Case | Status | Duration | Median Deviation | Log | Graph |
|---|---|---|---|---|---|
| 5n4pr_conf_10k_bintree | PASS | 105 s | -4.0 s | - | Show |
| 5n4pr_conf_10k_change | PASS | 189 s | 0.0 s | - | Show |
| 5n4pr_conf_change_dependant | PASS | 106 s | -4.0 s | - | - |
| 5n4pr_conf_change_independant | PASS | 125 s | 15.0 s | - | - |
| 5n4pr_conf_send_dependant | PASS | 111 s | 0.0 s | - | - |
| 5n4pr_conf_send_independant | PASS | 103 s | -8.0 s | - | - |
| 5n4pr_rocks_10k_bintree | PASS | 106 s | -6.0 s | - | - |
| 5n4pr_rocks_10k_change | PASS | 146 s | -21.0 s | - | - |