Mutant created against commit 37912ec.
+1 -1 · c
This description is AI generated, mistakes can be made.
Intent: Skip the desirable-service-flags check on VERSION for recon peers, so recon slots can be filled by pruned or non-witness peers that cannot serve blocks.
Behaviour change: Original: a recon outbound peer advertising services without NODE_NETWORK|NODE_WITNESS (e.g. NODE_NETWORK_LIMITED only while we are in IBD, or no NODE_WITNESS) is disconnected in ProcessMessage VERSION. Mutant: it is kept.
Trigger: Node with -txreconciliation opens an OUTBOUND_FULL_RECONCILIATION connection to a peer whose VERSION nServices lacks NODE_WITNESS (or is NODE_NETWORK_LIMITED during IBD); net_processing.cpp:3933 does not disconnect.
Spec violation: Commit: reconciliation connections 'relay everything a full-relay connection does (tx, block, addr)... Treat them as full outbound connections.'
Severity if undetected: medium
Why tests miss it: rg ExpectServicesFromConn src/test test/functional; p2p_txrecon_* / p2p_sendtxrcncl.py use default P2PInterface services (NODE_NETWORK|NODE_WITNESS); p2p_handshake.py tests service-flag disconnect only for full-relay/block-relay types
Plausibility: Recon connections are 'tx-only extras' in the PR narrative, so grouping them with FEELER as not needing services looks reasonable; one-line case move.
Equivalence risk: Peers lacking the flags are rare among addrman picks since addrman selection prefers desirable services, but ThreadOpenConnections can still pick them, so not equivalent.
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) --failfastmutant-harness operator: relocation; location: CNode::ExpectServicesFromConn lines 860-866
Imported from mutant-harness 474b4f7.
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.