qa: failure in p2p_private_broadcast.py #34387

issue Sjors opened this issue on January 23, 2026
  1. Sjors commented at 7:56 AM on January 23, 2026: member

    Noticed on the test-each-commit job for #32857:

    https://github.com/bitcoin/bitcoin/actions/runs/21254115595/job/61163625701?pr=32857

     node1 2026-01-22T16:33:40.225497Z [http] [httpserver.cpp:308] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:40648 
     node1 2026-01-22T16:33:40.225559Z [httpworker.1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getrawmempool user=__cookie__ 
     test  2026-01-22T16:33:40.276527Z TestFramework.utils (ERROR): wait_until() failed. Predicate: '''' 
                                               self.wait_until(lambda: len(tx_receiver.getrawmempool()) > 0)
                                       '''
     test  2026-01-22T16:33:40.276665Z TestFramework (ERROR): Unexpected exception 
                                       Traceback (most recent call last):
                                         File "/home/runner/work/bitcoin/bitcoin/test/functional/test_framework/test_framework.py", line 142, in main
                                           self.run_test()
                                         File "/home/runner/work/bitcoin/bitcoin/ci_build/test/functional/p2p_private_broadcast.py", line 331, in run_test
                                           self.wait_until(lambda: len(tx_receiver.getrawmempool()) > 0)
                                         File "/home/runner/work/bitcoin/bitcoin/test/functional/test_framework/test_framework.py", line 746, in wait_until
                                           return wait_until_helper_internal(test_function, timeout=timeout, timeout_factor=self.options.timeout_factor, check_interval=check_interval)
                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                         File "/home/runner/work/bitcoin/bitcoin/test/functional/test_framework/util.py", line 420, in wait_until_helper_internal
                                           raise AssertionError("Predicate {} not true after {} seconds".format(predicate_source, timeout))
                                       AssertionError: Predicate ''''
                                               self.wait_until(lambda: len(tx_receiver.getrawmempool()) > 0)
                                       ''' not true after 60 seconds
     test  2026-01-22T16:33:40.277541Z TestFramework (DEBUG): Closing down network thread 
     test  2026-01-22T16:33:40.327831Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later. 
    
  2. fanquake added the label CI failed on Jan 23, 2026
  3. fanquake commented at 8:00 AM on January 23, 2026: member

    cc @vasild

  4. vasild commented at 11:44 AM on January 23, 2026: contributor

    The failure is because a network-specific connection sneaked before the private broadcast one. It is a race in the test, I am considering how to best resolve it.

    Longer explanation: the tx originator bitcoind makes 10 initial connections as expected (apparently none of them are to Tor). Then the test sends a private broadcast and expects that the next connection to be made is a private broadcast and thus redirects it to nodes[1] instead of to a dummy Python P2P node. So, nodes[1] receives the network specific connection to Tor instead of the private broadcast connection. So, nodes[1] never receives the transaction and its mempool stays empty.

  5. vasild referenced this in commit 590a7b2595 on Jan 26, 2026
  6. vasild commented at 12:05 PM on January 26, 2026: contributor
  7. vasild referenced this in commit d92bd0b8fd on Jan 27, 2026
  8. vasild referenced this in commit 8b312c9b95 on Jan 30, 2026
  9. vasild referenced this in commit 13ba8bd63b on Jan 30, 2026
  10. vasild referenced this in commit f8b625685e on Feb 2, 2026
  11. vasild referenced this in commit 8aa763d464 on Feb 4, 2026
  12. fanquake added this to the milestone 31.0 on Feb 18, 2026
  13. vasild referenced this in commit a8ebcfd34c on Feb 23, 2026
  14. willcl-ark commented at 2:40 PM on March 2, 2026: member

    Think I hit this here: https://github.com/bitcoin/bitcoin/actions/runs/22577513500/job/65400502644?pr=34683#step:11:7202

    Seems like @vasild has a fix underway already in #34410 though :)

  15. achow101 closed this on Mar 2, 2026

  16. achow101 referenced this in commit 6b0a980de9 on Mar 2, 2026

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-25 03:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me