Let a forced block join the election already running for its root (#5251) active_elections::insert asserted that an election found for the block's root already contains the block. That holds while the only thing replacing a root's ledger successor is an election forcing its own winner, but the process RPC can force any block: the forced block rolls the successor back, the rollback observer keeps that root's election, and the scheduler then activates a block its election has never seen. Debug builds hit the assert, release builds leave the election voting on the rolled back block alone. The assert goes, and the processed-blocks observer treats a forced block that landed like a fork result, so handle_fork hands it to the running election through the same path and the fork cache covers an election started in between.
__________
Type: commit
Hash: 059ca47cb008cd31e414321d594fc3e254e9ace7
Created: yesterday
__________
gr0v1ty/nano-node:059ca47cb008cd31e414321d594fc3e254e9ace7
| Test Case | Status | Duration | Median Deviation | Log | Graph |
|---|---|---|---|---|---|
| 5n4pr_conf_10k_bintree | PASS | 114 s | 0.0 s | GitHub job logs | Show |
| 5n4pr_conf_10k_change | PASS | 181 s | 23.0 s | GitHub job logs | Show |
| 5n4pr_conf_change_dependant | PASS | 120 s | 8.0 s | GitHub job logs | - |
| 5n4pr_conf_change_independant | PASS | 120 s | 17.0 s | GitHub job logs | - |
| 5n4pr_conf_send_dependant | PASS | 108 s | -6.0 s | GitHub job logs | - |
| 5n4pr_conf_send_independant | PASS | 109 s | 0.0 s | GitHub job logs | - |
| 5n4pr_rocks_10k_bintree | PASS | 112 s | 0.0 s | GitHub job logs | - |
| 5n4pr_rocks_10k_change | PASS | 194 s | 43.0 s | GitHub job logs | - |