Mutant created against commit b821585.
+1 -2 · cpp
This description is AI generated, mistakes can be made.
Intent: Remove the guard whose entire purpose is to stop the node from re-discovering the CSV, segwit and taproot activations as 'unknown' softforks.
Behaviour change: On mainnet the warning state machine now tallies the 2016-era CSV (bit 0), segwit (bit 1) and 2021 taproot (bit 2) signalling periods, all of which exceeded 90%, so those bits reach the terminal ACTIVE state. Every mainnet node past IBD then reports 'Unknown new rules activated (versionbit 0/1/2)' in getnetworkinfo/getmininginfo and fires -alertnotify, permanently and for every new tip.
Trigger: Any mainnet (or testnet3) node that finishes IBD and connects a block: validation.cpp:2912 calls CheckUnknownActivations, which now returns bits 0, 1 and 2 as active.
Spec violation: consensus/params.h: '/** Don't warn about unknown BIP 9 activations below this height. This prevents us from warning about the CSV, segwit and taproot activations. */ int MinBIP9WarningHeight'.
Severity if undetected: medium
Why tests miss it: MinBIP9WarningHeight is 0 on regtest, signet and testnet4 (kernel/chainparams.cpp lines 361/518/598), so the clause is vacuously true in every functional test, including feature_versionbits_warning.py; only mainnet (711648) and testnet3 (2013984) set it, and no test runs the warning path there; grepped src/test for MinBIP9WarningHeight - no hits
Plausibility: It is one clause of a four-clause boolean; a contributor cleaning up Condition() (or moving the height check to the caller) could easily drop it, and no regtest-based test will ever complain.
Equivalence risk: Behaviourally identical on every chain whose MinBIP9WarningHeight is 0 - which is every chain the test suite runs.
Commands and environment reported by the submitter
cmake -B build -DBUILD_GUI=OFF -DWITH_ZMQ=OFF -DENABLE_IPC=OFF && cmake --build build -j$(nproc)ctest --test-dir build -j$(nproc) && build/test/functional/test_runner.py -j$(nproc)mutant-harness operator: deletion; location: WarningBitsConditionChecker::Condition lines 325-328
Imported from mutant-harness 6cd939b.
Commands are shown as text and never executed by MutantHub.
0 comments
No comments yet
Discuss equivalence, reproduction difficulties, or a test that kills this mutant.