Skip to content

Commit c5cbb76

Browse files
mzumsandedenavila
authored andcommitted
test: fix intermittent failures in feature_proxy.py
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.
1 parent 92eca36 commit c5cbb76

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)