p2p_blocksonly.py intermittently times out under the linux64_tsan-test CI configuration while waiting for a transaction to reach the second relay-permission peer.
Expected behavior
After the first peer sends the transaction, the node relays it to the second peer and second_peer.wait_for_tx(txid) completes.
Actual behavior
In #7434's TSAN job, all three functional-test attempts timed out at p2p_blocksonly.py:77 after 240 seconds:
second_peer.wait_for_tx(txid)
AssertionError: Predicate ... not true after 240.0 seconds
The node log shows that it accepted the transaction into the mempool and queued the inventory for peer 1:
PushInv -- adding new inv: tx 1a379b... peer=1
AcceptToMemoryPool: peer=0: accepted 1a379b...
The P2P test peer nevertheless did not observe the transaction before the timeout. There was no ThreadSanitizer report.
Failed run/job: https://github.com/dashpay/dash/actions/runs/29054104936/job/86243970080
The triggering PR changes only LLMQ signature-share preverification and its unit tests; it does not touch transaction relay, the P2P test framework, or p2p_blocksonly.py. Other test configurations passed on the same head, so this failure appears unrelated and timing-sensitive.
To reproduce
Run the functional test repeatedly with the TSAN build/configuration, especially under CI load:
test/functional/p2p_blocksonly.py
The observed failure reproduced on all three automatic attempts within one CI job, but has not yet been reproduced locally.
System information
Potential investigation areas are whether mocktime advancement leaves the normal inventory trickle/send scheduling stalled under TSAN, and whether the test should explicitly synchronize the send path before waiting for the second peer.
p2p_blocksonly.pyintermittently times out under thelinux64_tsan-testCI configuration while waiting for a transaction to reach the second relay-permission peer.Expected behavior
After the first peer sends the transaction, the node relays it to the second peer and
second_peer.wait_for_tx(txid)completes.Actual behavior
In #7434's TSAN job, all three functional-test attempts timed out at
p2p_blocksonly.py:77after 240 seconds:The node log shows that it accepted the transaction into the mempool and queued the inventory for peer 1:
The P2P test peer nevertheless did not observe the transaction before the timeout. There was no ThreadSanitizer report.
Failed run/job: https://github.com/dashpay/dash/actions/runs/29054104936/job/86243970080
The triggering PR changes only LLMQ signature-share preverification and its unit tests; it does not touch transaction relay, the P2P test framework, or
p2p_blocksonly.py. Other test configurations passed on the same head, so this failure appears unrelated and timing-sensitive.To reproduce
Run the functional test repeatedly with the TSAN build/configuration, especially under CI load:
The observed failure reproduced on all three automatic attempts within one CI job, but has not yet been reproduced locally.
System information
developplus the two substantive commits from refactor: make sig share preverification results explicit #7434, headc120f428ad074bc3e5daad3f53ac417b96dd4702linux64_tsan-testPotential investigation areas are whether mocktime advancement leaves the normal inventory trickle/send scheduling stalled under TSAN, and whether the test should explicitly synchronize the send path before waiting for the second peer.