From e36564f6dcf29dd08a4301e37f987debb996a612 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 30 Jan 2026 15:26:11 +1030 Subject: [PATCH] pytest: make test_connect_ratelimit more robust We were sending SIGSTOP to the lightningds, but that doesn't always mean the connectd would stop it seems: ``` lightningd-1 2026-01-27T04:49:16.979Z DEBUG 0258f3ff3e0853ccc09f6fe89823056d7c0c55c95fab97674df5e1ad97a72f6265-connectd: Initializing important peer with 1 addresses lightningd-1 2026-01-27T04:49:16.979Z DEBUG connectd: Got 10 bad cupdates, ignoring them (expected on mainnet) lightningd-1 2026-01-27T04:49:16.979Z DEBUG 0258f3ff3e0853ccc09f6fe89823056d7c0c55c95fab97674df5e1ad97a72f6265-connectd: Connected out, starting crypto lightningd-1 2026-01-27T04:49:16.980Z DEBUG 038194b5f32bdf0aa59812c86c4ef7ad2f294104fa027d1ace9b469bb6f88cf37b-hsmd: Got WIRE_HSMD_ECDH_REQ lightningd-1 2026-01-27T04:49:16.981Z DEBUG hsmd: Client: Received message 1 from client lightningd-1 2026-01-27T04:49:16.985Z TRACE 0258f3ff3e0853ccc09f6fe89823056d7c0c55c95fab97674df5e1ad97a72f6265-gossipd: handle_recv_gossip: WIRE_CHANNEL_ANNOUNCEMENT lightningd-1 2026-01-27T04:49:16.985Z TRACE 0258f3ff3e0853ccc09f6fe89823056d7c0c55c95fab97674df5e1ad97a72f6265-gossipd: handle_recv_gossip: WIRE_CHANNEL_UPDATE lightningd-1 2026-01-27T04:49:16.985Z TRACE 0258f3ff3e0853ccc09f6fe89823056d7c0c55c95fab97674df5e1ad97a72f6265-gossipd: handle_recv_gossip: WIRE_CHANNEL_UPDATE lightningd-1 2026-01-27T04:49:16.985Z TRACE 0258f3ff3e0853ccc09f6fe89823056d7c0c55c95fab97674df5e1ad97a72f6265-gossipd: handle_recv_gossip: WIRE_NODE_ANNOUNCEMENT lightningd-1 2026-01-27T04:49:16.985Z DEBUG 0258f3ff3e0853ccc09f6fe89823056d7c0c55c95fab97674df5e1ad97a72f6265-connectd: Connect OUT lightningd-1 2026-01-27T04:49:16.986Z DEBUG 0258f3ff3e0853ccc09f6fe89823056d7c0c55c95fab97674df5e1ad97a72f6265-connectd: peer_out WIRE_INIT lightningd-1 2026-01-27T04:49:16.986Z DEBUG 0258f3ff3e0853ccc09f6fe89823056d7c0c55c95fab97674df5e1ad97a72f6265-connectd: peer_in WIRE_INIT lightningd-1 2026-01-27T04:49:16.986Z TRACE lightningd: Calling peer_connected hook of plugin chanbackup lightningd-1 2026-01-27T04:49:16.986Z DEBUG 0258f3ff3e0853ccc09f6fe89823056d7c0c55c95fab97674df5e1ad97a72f6265-connectd: Handed peer, entering loop lightningd-1 2026-01-27T04:49:16.986Z DEBUG 03cecbfdc68544cc596223b68ce0710c9e5d2c9cb317ee07822d95079acc703d31-connectd: Initializing important peer with 1 addresses lightningd-1 2026-01-27T04:49:16.986Z DEBUG 033845802d25b4e074ccfd7cd8b339a41dc75bf9978a034800444b51d42b07799a-connectd: Initializing important peer with 1 addresses lightningd-1 2026-01-27T04:49:16.987Z DEBUG 033845802d25b4e074ccfd7cd8b339a41dc75bf9978a034800444b51d42b07799a-connectd: Too many connections, waiting... lightningd-1 2026-01-27T04:49:16.987Z DEBUG 02186115cb7e93e2cb4d9d9fe7a9cf5ff7a5784bfdda4f164ff041655e4bcd4fd0-connectd: Initializing important peer with 1 addresses lightningd-1 2026-01-27T04:49:16.987Z DEBUG 02186115cb7e93e2cb4d9d9fe7a9cf5ff7a5784bfdda4f164ff041655e4bcd4fd0-connectd: Too many connections, waiting... lightningd-1 2026-01-27T04:49:16.987Z DEBUG 02287bfac8b99b35477ebe9334eede1e32b189e24644eb701c079614712331cec0-connectd: Initializing important peer with 1 addresses lightningd-1 2026-01-27T04:49:16.987Z DEBUG 02287bfac8b99b35477ebe9334eede1e32b189e24644eb701c079614712331cec0-connectd: Too many connections, waiting... lightningd-1 2026-01-27T04:49:16.987Z DEBUG 03cecbfdc68544cc596223b68ce0710c9e5d2c9cb317ee07822d95079acc703d31-connectd: Connected out, starting crypto lightningd-1 2026-01-27T04:49:16.989Z DEBUG 038194b5f32bdf0aa59812c86c4ef7ad2f294104fa027d1ace9b469bb6f88cf37b-hsmd: Got WIRE_HSMD_ECDH_REQ lightningd-1 2026-01-27T04:49:16.989Z DEBUG hsmd: Client: Received message 1 from client lightningd-1 2026-01-27T04:49:16.990Z DEBUG 0258f3ff3e0853ccc09f6fe89823056d7c0c55c95fab97674df5e1ad97a72f6265-connectd: peer_in WIRE_GOSSIP_TIMESTAMP_FILTER lightningd-1 2026-01-27T04:49:16.991Z DEBUG 03cecbfdc68544cc596223b68ce0710c9e5d2c9cb317ee07822d95079acc703d31-connectd: Connect OUT lightningd-1 2026-01-27T04:49:16.991Z DEBUG 03cecbfdc68544cc596223b68ce0710c9e5d2c9cb317ee07822d95079acc703d31-connectd: peer_out WIRE_INIT lightningd-1 2026-01-27T04:49:16.991Z DEBUG 0258f3ff3e0853ccc09f6fe89823056d7c0c55c95fab97674df5e1ad97a72f6265-connectd: peer_out WIRE_PEER_STORAGE ``` Signed-off-by: Rusty Russell --- tests/test_connection.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tests/test_connection.py b/tests/test_connection.py index 1d3ea7d1a..20fa6259f 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -4496,9 +4496,15 @@ def test_connect_ratelimit(node_factory, bitcoind): assert not l1.daemon.is_in_log('Unblocking for') l1.stop() - # Suspend the others, to make sure they cannot respond too fast. + + # Suspend the others' connectd, to make sure they cannot respond too fast. + connectd_pids = [] for n in nodes: - os.kill(n.daemon.proc.pid, signal.SIGSTOP) + log = n.daemon.is_in_log(' connectd: pid .*, msgfd') + m = re.search(r'connectd: pid (\d*),', log) + pid = int(m.groups()[0]) + connectd_pids.append(pid) + os.kill(pid, signal.SIGSTOP) try: l1.start() @@ -4509,13 +4515,13 @@ def test_connect_ratelimit(node_factory, bitcoind): * (len(nodes) - 1)) except Exception as err: # Resume, so pytest doesn't hang! - for n in nodes: - os.kill(n.daemon.proc.pid, signal.SIGCONT) + for p in connectd_pids: + os.kill(p, signal.SIGCONT) raise err # Resume them - for n in nodes: - os.kill(n.daemon.proc.pid, signal.SIGCONT) + for p in connectd_pids: + os.kill(p, signal.SIGCONT) # And now they're all connected wait_for(lambda: [p['connected'] for p in l1.rpc.listpeers()['peers']] == [True] * len(nodes))