Skip to content

Commit 33884e7

Browse files
committed
Merge bitcoin/bitcoin#30545: test: fix intermittent failures in feature_proxy.py
a6efc7e test: fix intermittent failures in feature_proxy.py (Martin Zumsande) Pull request description: Fixes #29871 If addnode connections are made with v2transport and the peer immediately disconnects us, reconnections with v1 are scheduled. This could interfere with later checks depending on timing. Avoid this by using `v2transport=False` in the addnode rpc - this test isn't about the message layer anyway, so running it with v2 would add no value. ACKs for top commit: maflcko: ACK a6efc7e tdb3: cr re ACK a6efc7e Tree-SHA512: 39353a392e75e4c6257d971ceecb65fb76ec6d3b121a087869831c24b767a18f57e2ae2968da445c7fa731cb03053c90df37dd2cd6e86f786ad4121bc68ca235
2 parents be96929 + a6efc7e commit 33884e7

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

test/functional/feature_proxy.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,8 @@ def node_test(self, node, *, proxies, auth, test_onion, test_cjdns):
148148
rv = []
149149
addr = "15.61.23.23:1234"
150150
self.log.debug(f"Test: outgoing IPv4 connection through node {node.index} for address {addr}")
151-
node.addnode(addr, "onetry")
151+
# v2transport=False is used to avoid reconnections with v1 being scheduled. These could interfere with later checks.
152+
node.addnode(addr, "onetry", v2transport=False)
152153
cmd = proxies[0].queue.get()
153154
assert isinstance(cmd, Socks5Command)
154155
# Note: bitcoind's SOCKS5 implementation only sends atyp DOMAINNAME, even if connecting directly to IPv4/IPv6
@@ -164,7 +165,7 @@ def node_test(self, node, *, proxies, auth, test_onion, test_cjdns):
164165
if self.have_ipv6:
165166
addr = "[1233:3432:2434:2343:3234:2345:6546:4534]:5443"
166167
self.log.debug(f"Test: outgoing IPv6 connection through node {node.index} for address {addr}")
167-
node.addnode(addr, "onetry")
168+
node.addnode(addr, "onetry", v2transport=False)
168169
cmd = proxies[1].queue.get()
169170
assert isinstance(cmd, Socks5Command)
170171
# Note: bitcoind's SOCKS5 implementation only sends atyp DOMAINNAME, even if connecting directly to IPv4/IPv6
@@ -180,7 +181,7 @@ def node_test(self, node, *, proxies, auth, test_onion, test_cjdns):
180181
if test_onion:
181182
addr = "pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion:8333"
182183
self.log.debug(f"Test: outgoing onion connection through node {node.index} for address {addr}")
183-
node.addnode(addr, "onetry")
184+
node.addnode(addr, "onetry", v2transport=False)
184185
cmd = proxies[2].queue.get()
185186
assert isinstance(cmd, Socks5Command)
186187
assert_equal(cmd.atyp, AddressType.DOMAINNAME)
@@ -195,7 +196,7 @@ def node_test(self, node, *, proxies, auth, test_onion, test_cjdns):
195196
if test_cjdns:
196197
addr = "[fc00:1:2:3:4:5:6:7]:8888"
197198
self.log.debug(f"Test: outgoing CJDNS connection through node {node.index} for address {addr}")
198-
node.addnode(addr, "onetry")
199+
node.addnode(addr, "onetry", v2transport=False)
199200
cmd = proxies[1].queue.get()
200201
assert isinstance(cmd, Socks5Command)
201202
assert_equal(cmd.atyp, AddressType.DOMAINNAME)
@@ -209,7 +210,7 @@ def node_test(self, node, *, proxies, auth, test_onion, test_cjdns):
209210

210211
addr = "node.noumenon:8333"
211212
self.log.debug(f"Test: outgoing DNS name connection through node {node.index} for address {addr}")
212-
node.addnode(addr, "onetry")
213+
node.addnode(addr, "onetry", v2transport=False)
213214
cmd = proxies[3].queue.get()
214215
assert isinstance(cmd, Socks5Command)
215216
assert_equal(cmd.atyp, AddressType.DOMAINNAME)

0 commit comments

Comments
 (0)