Running the test with an emulated big-endian system (via docker run --platform linux/s390x -it ubuntu:24.10 /bin/bash
, as described in #31344 (comment)), I’m seeing mismatched byte orders in IP address representations.
I’ve noticed this in #29852 (comment), but it reproduces on master as well.
The problems seems to be that the kernel file /proc/net/tcp
always stores addresses in little-endian order, regardless of the system’s architecture, so we should likely adjust the addr_to_hex
or _convert_ip_port
methods:
0TEST | STATUS | DURATION
1
2example_test.py | ✓ Passed | 6 s
3feature_abortnode.py | ✓ Passed | 3 s
4feature_addrman.py | ✓ Passed | 10 s
5feature_anchors.py | ✓ Passed | 6 s
6feature_asmap.py | ✓ Passed | 11 s
7feature_assumeutxo.py | ✓ Passed | 77 s
8feature_assumevalid.py | ✓ Passed | 63 s
9feature_bip68_sequence.py | ✓ Passed | 62 s
10feature_block.py | ✓ Passed | 662 s
11feature_blocksdir.py | ✓ Passed | 3 s
12feature_blocksxor.py | ✓ Passed | 8 s
13feature_cltv.py | ✓ Passed | 3 s
14feature_coinstatsindex.py | ✓ Passed | 13 s
15feature_config_args.py | ✓ Passed | 38 s
16feature_csv_activation.py | ✓ Passed | 53 s
17feature_dersig.py | ✓ Passed | 3 s
18feature_dirsymlinks.py | ✓ Passed | 3 s
19feature_discover.py | ✓ Passed | 6 s
20feature_fastprune.py | ✓ Passed | 3 s
21feature_fee_estimation.py | ✓ Passed | 176 s
22feature_filelock.py | ✓ Passed | 5 s
23feature_framework_miniwallet.py | ✓ Passed | 51 s
24feature_framework_unit_tests.py | ✓ Passed | 86 s
25feature_help.py | ✓ Passed | 2 s
26feature_includeconf.py | ✓ Passed | 6 s
27feature_init.py | ✓ Passed | 29 s
28feature_loadblock.py | ✓ Passed | 6 s
29feature_logging.py | ✓ Passed | 9 s
30feature_maxtipage.py | ✓ Passed | 25 s
31feature_maxuploadtarget.py | ✓ Passed | 214 s
32feature_minchainwork.py | ✓ Passed | 13 s
33feature_notifications.py | ✓ Passed | 11 s
34feature_nulldummy.py | ✓ Passed | 5 s
35feature_port.py | ✓ Passed | 7 s
36feature_posix_fs_permissions.py | ✓ Passed | 2 s
37feature_presegwit_node_upgrade.py | ✓ Passed | 4 s
38feature_proxy.py | ✓ Passed | 12 s
39feature_rbf.py | ✓ Passed | 38 s
40feature_reindex.py | ✓ Passed | 27 s
41feature_reindex_readonly.py | ✓ Passed | 3 s
42feature_remove_pruned_files_on_startup.py | ✓ Passed | 11 s
43feature_segwit.py --descriptors --v1transport | ✓ Passed | 17 s
44feature_segwit.py --descriptors --v2transport | ✓ Passed | 16 s
45feature_segwit.py --legacy-wallet | ✓ Passed | 39 s
46feature_settings.py | ✓ Passed | 11 s
47feature_shutdown.py | ✓ Passed | 3 s
48feature_signet.py | ✓ Passed | 14 s
49feature_startupnotify.py | ✓ Passed | 3 s
50feature_taproot.py | ✓ Passed | 542 s
51feature_uacomment.py | ✓ Passed | 7 s
52feature_utxo_set_hash.py | ✓ Passed | 4 s
53feature_versionbits_warning.py | ✓ Passed | 8 s
54interface_http.py | ✓ Passed | 3 s
55interface_rest.py | ✓ Passed | 7 s
56interface_rpc.py | ✓ Passed | 5 s
57interface_zmq.py | ✓ Passed | 29 s
58mempool_accept.py | ✓ Passed | 16 s
59mempool_accept_wtxid.py | ✓ Passed | 16 s
60mempool_datacarrier.py | ✓ Passed | 4 s
61mempool_dust.py | ✓ Passed | 14 s
62mempool_ephemeral_dust.py | ✓ Passed | 67 s
63mempool_expiry.py | ✓ Passed | 5 s
64mempool_limit.py | ✓ Passed | 89 s
65mempool_package_limits.py | ✓ Passed | 11 s
66mempool_package_onemore.py | ✓ Passed | 4 s
67mempool_package_rbf.py | ✓ Passed | 43 s
68mempool_packages.py | ✓ Passed | 8 s
69mempool_persist.py --descriptors | ✓ Passed | 26 s
70mempool_reorg.py | ✓ Passed | 7 s
71mempool_resurrect.py | ✓ Passed | 3 s
72mempool_sigoplimit.py | ✓ Passed | 11 s
73mempool_spend_coinbase.py | ✓ Passed | 3 s
74mempool_truc.py | ✓ Passed | 22 s
75mempool_unbroadcast.py | ✓ Passed | 20 s
76mempool_updatefromblock.py | ✓ Passed | 156 s
77mining_basic.py | ✓ Passed | 38 s
78mining_getblocktemplate_longpoll.py | ✓ Passed | 70 s
79mining_mainnet.py | ✓ Passed | 24 s
80mining_prioritisetransaction.py | ✓ Passed | 19 s
81p2p_1p1c_network.py | ✓ Passed | 37 s
82p2p_add_connections.py | ✓ Passed | 10 s
83p2p_addr_relay.py | ✓ Passed | 24 s
84p2p_addrfetch.py | ✓ Passed | 2 s
85p2p_addrv2_relay.py | ✓ Passed | 3 s
86p2p_block_sync.py --v1transport | ✓ Passed | 5 s
87p2p_block_sync.py --v2transport | ✓ Passed | 4 s
88p2p_blockfilters.py | ✓ Passed | 65 s
89p2p_blocksonly.py | ✓ Passed | 16 s
90p2p_compactblocks.py | ✓ Passed | 16 s
91p2p_compactblocks_blocksonly.py | ✓ Passed | 4 s
92p2p_compactblocks_hb.py --v1transport | ✓ Passed | 21 s
93p2p_compactblocks_hb.py --v2transport | ✓ Passed | 25 s
94p2p_disconnect_ban.py --v1transport | ✓ Passed | 5 s
95p2p_disconnect_ban.py --v2transport | ✓ Passed | 5 s
96p2p_dns_seeds.py | ✓ Passed | 39 s
97p2p_dos_header_tree.py | ✓ Passed | 5 s
98p2p_eviction.py | ✓ Passed | 6 s
99p2p_feefilter.py | ✓ Passed | 9 s
100p2p_filter.py | ✓ Passed | 8 s
101p2p_fingerprint.py | ✓ Passed | 3 s
102p2p_getaddr_caching.py | ✓ Passed | 34 s
103p2p_getdata.py | ✓ Passed | 2 s
104p2p_handshake.py | ✓ Passed | 5 s
105p2p_handshake.py --v2transport | ✓ Passed | 9 s
106p2p_headers_sync_with_minchainwork.py | ✓ Passed | 127 s
107p2p_i2p_ports.py | ✓ Passed | 2 s
108p2p_i2p_sessions.py | ✓ Passed | 2 s
109p2p_ibd_stalling.py --v1transport | ✓ Passed | 26 s
110p2p_ibd_stalling.py --v2transport | ✓ Passed | 46 s
111p2p_ibd_txrelay.py | ✓ Passed | 4 s
112p2p_initial_headers_sync.py | ✓ Passed | 3 s
113p2p_invalid_block.py --v1transport | ✓ Passed | 4 s
114p2p_invalid_block.py --v2transport | ✓ Passed | 5 s
115p2p_invalid_locator.py | ✓ Passed | 4 s
116p2p_invalid_messages.py | ✓ Passed | 47 s
117p2p_invalid_tx.py --v1transport | ✓ Passed | 10 s
118p2p_invalid_tx.py --v2transport | ✓ Passed | 19 s
119p2p_leak.py | ✓ Passed | 8 s
120p2p_leak_tx.py --v1transport | ✓ Passed | 11 s
121p2p_leak_tx.py --v2transport | ✓ Passed | 12 s
122p2p_message_capture.py | ✓ Passed | 2 s
123p2p_mutated_blocks.py | ✓ Passed | 4 s
124p2p_net_deadlock.py --v1transport | ✓ Passed | 6 s
125p2p_net_deadlock.py --v2transport | ✓ Passed | 6 s
126p2p_nobloomfilter_messages.py | ✓ Passed | 3 s
127p2p_node_network_limited.py --v1transport | ✓ Passed | 23 s
128p2p_node_network_limited.py --v2transport | ✓ Passed | 24 s
129p2p_opportunistic_1p1c.py | ✓ Passed | 87 s
130p2p_orphan_handling.py | ✓ Passed | 29 s
131p2p_outbound_eviction.py | ✓ Passed | 8 s
132p2p_permissions.py | ✓ Passed | 21 s
133p2p_ping.py | ✓ Passed | 3 s
134p2p_seednode.py | ✓ Passed | 5 s
135p2p_segwit.py | ✓ Passed | 242 s
136p2p_sendheaders.py | ✓ Passed | 39 s
137p2p_sendtxrcncl.py | ✓ Passed | 10 s
138p2p_timeouts.py --v1transport | ✓ Passed | 3 s
139p2p_timeouts.py --v2transport | ✓ Passed | 4 s
140p2p_tx_download.py | ✓ Passed | 139 s
141p2p_tx_privacy.py | ✓ Passed | 3 s
142p2p_unrequested_blocks.py | ✓ Passed | 9 s
143p2p_v2_encrypted.py | ✓ Passed | 23 s
144p2p_v2_misbehaving.py | ✓ Passed | 5 s
145p2p_v2_transport.py | ✓ Passed | 11 s
146rpc_blockchain.py --v1transport | ✓ Passed | 30 s
147rpc_blockchain.py --v2transport | ✓ Passed | 30 s
148rpc_createmultisig.py | ✓ Passed | 35 s
149rpc_decodescript.py | ✓ Passed | 2 s
150rpc_deprecated.py | ✓ Passed | 3 s
151rpc_deriveaddresses.py | ✓ Passed | 2 s
152rpc_deriveaddresses.py --usecli | ✓ Passed | 4 s
153rpc_dumptxoutset.py | ✓ Passed | 2 s
154rpc_estimatefee.py | ✓ Passed | 2 s
155rpc_generate.py | ✓ Passed | 12 s
156rpc_getblockfilter.py | ✓ Passed | 4 s
157rpc_getblockfrompeer.py | ✓ Passed | 19 s
158rpc_getblockstats.py | ✓ Passed | 3 s
159rpc_getchaintips.py | ✓ Passed | 7 s
160rpc_getdescriptoractivity.py | ✓ Passed | 6 s
161rpc_getdescriptorinfo.py | ✓ Passed | 3 s
162rpc_help.py | ✓ Passed | 4 s
163rpc_invalid_address_message.py | ✓ Passed | 3 s
164rpc_invalidateblock.py | ✓ Passed | 3 s
165rpc_mempool_info.py | ✓ Passed | 3 s
166rpc_misc.py | ✓ Passed | 4 s
167rpc_named_arguments.py | ✓ Passed | 3 s
168rpc_net.py --v1transport | ✓ Passed | 55 s
169rpc_net.py --v2transport | ✓ Passed | 54 s
170rpc_orphans.py | ✓ Passed | 4 s
171rpc_packages.py | ✓ Passed | 31 s
172rpc_preciousblock.py | ✓ Passed | 4 s
173rpc_psbt.py --descriptors | ✓ Passed | 34 s
174rpc_psbt.py --legacy-wallet | ✓ Passed | 33 s
175rpc_rawtransaction.py --legacy-wallet | ✓ Passed | 22 s
176rpc_scanblocks.py | ✓ Passed | 4 s
177rpc_scantxoutset.py | ✓ Passed | 103 s
178rpc_setban.py --v1transport | ✓ Passed | 7 s
179rpc_setban.py --v2transport | ✓ Passed | 7 s
180rpc_signer.py | ✓ Passed | 6 s
181rpc_signmessagewithprivkey.py | ✓ Passed | 2 s
182rpc_signrawtransactionwithkey.py | ✓ Passed | 3 s
183rpc_txoutproof.py | ✓ Passed | 8 s
184rpc_uptime.py | ✓ Passed | 2 s
185rpc_users.py | ✓ Passed | 24 s
186rpc_validateaddress.py | ✓ Passed | 3 s
187rpc_whitelist.py | ✓ Passed | 4 s
188tool_signet_miner.py --descriptors | ✓ Passed | 9 s
189tool_signet_miner.py --legacy-wallet | ✓ Passed | 6 s
190tool_wallet.py --descriptors | ✓ Passed | 100 s
191tool_wallet.py --legacy-wallet | ✓ Passed | 140 s
192tool_wallet.py --legacy-wallet --bdbro | ✓ Passed | 142 s
193tool_wallet.py --legacy-wallet --bdbro --swap-bdb-endian | ✓ Passed | 102 s
194wallet_abandonconflict.py --descriptors | ✓ Passed | 13 s
195wallet_abandonconflict.py --legacy-wallet | ✓ Passed | 14 s
196wallet_address_types.py --descriptors | ✓ Passed | 33 s
197wallet_address_types.py --legacy-wallet | ✓ Passed | 56 s
198wallet_assumeutxo.py --descriptors | ✓ Passed | 21 s
199wallet_avoid_mixing_output_types.py --descriptors | ✓ Passed | 8 s
200wallet_avoidreuse.py --descriptors | ✓ Passed | 84 s
201wallet_avoidreuse.py --legacy-wallet | ✓ Passed | 379 s
202wallet_backup.py --descriptors | ✓ Passed | 46 s
203wallet_backup.py --legacy-wallet | ✓ Passed | 71 s
204wallet_balance.py --descriptors | ✓ Passed | 15 s
205wallet_balance.py --legacy-wallet | ✓ Passed | 15 s
206wallet_basic.py --descriptors | ✓ Passed | 53 s
207wallet_basic.py --legacy-wallet | ✓ Passed | 59 s
208wallet_blank.py --descriptors | ✓ Passed | 3 s
209wallet_blank.py --legacy-wallet | ✓ Passed | 4 s
210wallet_bumpfee.py --descriptors | ✓ Passed | 66 s
211wallet_bumpfee.py --legacy-wallet | ✓ Passed | 66 s
212wallet_change_address.py --descriptors | ✓ Passed | 17 s
213wallet_change_address.py --legacy-wallet | ✓ Passed | 23 s
214wallet_coinbase_category.py --descriptors | ✓ Passed | 4 s
215wallet_coinbase_category.py --legacy-wallet | ✓ Passed | 4 s
216wallet_conflicts.py --descriptors | ✓ Passed | 54 s
217wallet_conflicts.py --legacy-wallet | ✓ Passed | 78 s
218wallet_create_tx.py --descriptors | ✓ Passed | 22 s
219wallet_create_tx.py --legacy-wallet | ✓ Passed | 31 s
220wallet_createwallet.py --descriptors | ✓ Passed | 7 s
221wallet_createwallet.py --legacy-wallet | ✓ Passed | 6 s
222wallet_createwallet.py --usecli | ✓ Passed | 15 s
223wallet_createwalletdescriptor.py --descriptors | ✓ Passed | 4 s
224wallet_crosschain.py | ✓ Passed | 4 s
225wallet_descriptor.py --descriptors | ✓ Passed | 46 s
226wallet_disable.py | ✓ Passed | 2 s
227wallet_dump.py --legacy-wallet | ✓ Passed | 43 s
228wallet_encryption.py --descriptors | ✓ Passed | 10 s
229wallet_encryption.py --legacy-wallet | ✓ Passed | 9 s
230wallet_fallbackfee.py --descriptors | ✓ Passed | 6 s
231wallet_fallbackfee.py --legacy-wallet | ✓ Passed | 4 s
232wallet_fundrawtransaction.py --descriptors | ✓ Passed | 137 s
233wallet_gethdkeys.py --descriptors | ✓ Passed | 5 s
234wallet_groups.py --descriptors | ✓ Passed | 37 s
235wallet_groups.py --legacy-wallet | ✓ Passed | 82 s
236wallet_hd.py --descriptors | ✓ Passed | 13 s
237wallet_hd.py --legacy-wallet | ✓ Passed | 20 s
238wallet_implicitsegwit.py --legacy-wallet | ✓ Passed | 16 s
239wallet_import_rescan.py --legacy-wallet | ✓ Passed | 147 s
240wallet_import_with_label.py --legacy-wallet | ✓ Passed | 4 s
241wallet_importmulti.py --legacy-wallet | ✓ Passed | 29 s
242wallet_importprunedfunds.py --descriptors | ✓ Passed | 5 s
243wallet_importprunedfunds.py --legacy-wallet | ✓ Passed | 6 s
244wallet_keypool.py --descriptors | ✓ Passed | 12 s
245wallet_keypool.py --legacy-wallet | ✓ Passed | 15 s
246wallet_keypool_topup.py --descriptors | ✓ Passed | 48 s
247wallet_keypool_topup.py --legacy-wallet | ✓ Passed | 43 s
248wallet_labels.py --descriptors | ✓ Passed | 10 s
249wallet_labels.py --legacy-wallet | ✓ Passed | 16 s
250wallet_listdescriptors.py --descriptors | ✓ Passed | 4 s
251wallet_listreceivedby.py --descriptors | ✓ Passed | 12 s
252wallet_listreceivedby.py --legacy-wallet | ✓ Passed | 10 s
253wallet_listsinceblock.py --descriptors | ✓ Passed | 17 s
254wallet_listsinceblock.py --legacy-wallet | ✓ Passed | 17 s
255wallet_listtransactions.py --descriptors | ✓ Passed | 73 s
256wallet_multisig_descriptor_psbt.py --descriptors | ✓ Passed | 19 s
257wallet_multiwallet.py --descriptors | ✓ Passed | 29 s
258wallet_multiwallet.py --legacy-wallet | ✓ Passed | 28 s
259wallet_multiwallet.py --usecli | ✓ Passed | 55 s
260wallet_orphanedreward.py | ✓ Passed | 20 s
261wallet_reindex.py --descriptors | ✓ Passed | 9 s
262wallet_reindex.py --legacy-wallet | ✓ Passed | 9 s
263wallet_reorgsrestore.py | ✓ Passed | 11 s
264wallet_rescan_unconfirmed.py --descriptors | ✓ Passed | 3 s
265wallet_resendwallettransactions.py --descriptors | ✓ Passed | 4 s
266wallet_resendwallettransactions.py --legacy-wallet | ✓ Passed | 5 s
267wallet_send.py --descriptors | ✓ Passed | 49 s
268wallet_send.py --legacy-wallet | ✓ Passed | 87 s
269wallet_sendmany.py --descriptors | ✓ Passed | 4 s
270wallet_sendmany.py --legacy-wallet | ✓ Passed | 3 s
271wallet_signer.py --descriptors | ✓ Passed | 19 s
272wallet_signmessagewithaddress.py | ✓ Passed | 3 s
273wallet_signrawtransactionwithwallet.py --descriptors | ✓ Passed | 10 s
274wallet_signrawtransactionwithwallet.py --legacy-wallet | ✓ Passed | 6 s
275wallet_simulaterawtx.py --descriptors | ✓ Passed | 5 s
276wallet_simulaterawtx.py --legacy-wallet | ✓ Passed | 5 s
277wallet_spend_unconfirmed.py | ✓ Passed | 12 s
278wallet_startup.py | ✓ Passed | 7 s
279wallet_taproot.py --descriptors | ✓ Passed | 410 s
280wallet_timelock.py | ✓ Passed | 3 s
281wallet_transactiontime_rescan.py --descriptors | ✓ Passed | 49 s
282wallet_transactiontime_rescan.py --legacy-wallet | ✓ Passed | 136 s
283wallet_txn_clone.py | ✓ Passed | 8 s
284wallet_txn_clone.py --mineblock | ✓ Passed | 8 s
285wallet_txn_clone.py --segwit | ✓ Passed | 6 s
286wallet_txn_doublespend.py --descriptors | ✓ Passed | 7 s
287wallet_txn_doublespend.py --legacy-wallet | ✓ Passed | 8 s
288wallet_txn_doublespend.py --mineblock | ✓ Passed | 7 s
289wallet_watchonly.py --legacy-wallet | ✓ Passed | 4 s
290wallet_watchonly.py --usecli --legacy-wallet | ✓ Passed | 9 s
291feature_bind_port_discover.py | ○ Skipped | 1 s
292feature_bind_port_externalip.py | ○ Skipped | 1 s
293feature_unsupported_utxo_db.py | ○ Skipped | 1 s
294interface_usdt_coinselection.py | ○ Skipped | 1 s
295interface_usdt_mempool.py | ○ Skipped | 2 s
296interface_usdt_net.py | ○ Skipped | 2 s
297interface_usdt_utxocache.py | ○ Skipped | 1 s
298interface_usdt_validation.py | ○ Skipped | 2 s
299mempool_compatibility.py | ○ Skipped | 1 s
300wallet_backwards_compatibility.py --descriptors | ○ Skipped | 1 s
301wallet_backwards_compatibility.py --legacy-wallet | ○ Skipped | 1 s
302wallet_inactive_hdchains.py --legacy-wallet | ○ Skipped | 1 s
303wallet_migration.py | ○ Skipped | 1 s
304wallet_upgradewallet.py --legacy-wallet | ○ Skipped | 1 s
305feature_bind_extra.py | ✖ Failed | 2 s
306interface_bitcoin_cli.py --descriptors | ✖ Failed | 6 s
307interface_bitcoin_cli.py --legacy-wallet | ✖ Failed | 6 s
308rpc_bind.py --ipv4 | ✖ Failed | 2 s
309rpc_bind.py --ipv6 | ✖ Failed | 2 s
310rpc_bind.py --nonloopback | ✖ Failed | 2 s
311wallet_fast_rescan.py --descriptors | ✖ Failed | 69 s
312wallet_fundrawtransaction.py --legacy-wallet | ✖ Failed | 155 s
313wallet_importdescriptors.py --descriptors | ✖ Failed | 105 s
314wallet_listtransactions.py --legacy-wallet | ✖ Failed | 45 s
315wallet_miniscript.py --descriptors | ✖ Failed | 116 s
316wallet_sendall.py --descriptors | ✖ Failed | 42 s
317wallet_sendall.py --legacy-wallet | ✖ Failed | 48 s
318
319ALL | ✖ Failed | 9500 s (accumulated)
320Runtime: 1028 s
Operating system and version
macOS 15.3