Networking tests fail on emulated big-endian systems #31812

issue l0rinc openend this issue on February 6, 2025
  1. l0rinc commented at 4:43 pm on February 6, 2025: contributor

    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

  2. maflcko commented at 8:44 pm on February 6, 2025: member
    I suspect this is a macOS issue, because on my local CI system using Linux the s390x task was last reported to have passed on Feb 2nd.
  3. maflcko added the label macOS on Feb 6, 2025
  4. maflcko added the label CI failed on Feb 6, 2025
  5. l0rinc commented at 7:01 pm on February 10, 2025: contributor

    I ran it on an Ubuntu 24.04 Hetzner server as well and basically got the same result (that 0100007f is not equal to 7f000001):

    0# lsb_release -a
    1No LSB modules are available.
    2Distributor ID: Ubuntu
    3Description:    Ubuntu 24.04.1 LTS
    4Release:        24.04
    5Codename:       noble
    
      01/3 - rpc_bind.py --ipv4 failed, Duration: 2 s                                                                                                     
      1                                                                                                                                                   
      2stdout:                                                                                                                                            
      32025-02-10T18:56:42.927000Z TestFramework (INFO): PRNG seed is: 1808665840999458851                                                                
      42025-02-10T18:56:42.938000Z TestFramework (INFO): Initializing test directory /tmp/test_runner__🏃_20250210_185638/rpc_bind_2                     
      52025-02-10T18:56:42.943000Z TestFramework (INFO): Check for ipv6                                                                                   
      62025-02-10T18:56:42.945000Z TestFramework (INFO): Check for non-loopback interface                                                                 
      72025-02-10T18:56:42.949000Z TestFramework (INFO): Bind test for ['127.0.0.1']                                                                      
      82025-02-10T18:56:43.814000Z TestFramework (ERROR): Assertion failed                                                                                
      9Traceback (most recent call last):                                                                                                                 
     10  File "/mnt/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main                                                          
     11    self.run_test()
     12  File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 99, in run_test
     13    self._run_loopback_tests()
     14  File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 110, in _run_loopback_tests
     15    self.run_bind_test(['127.0.0.1'], '127.0.0.1', ['127.0.0.1'],
     16  File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 45, in run_bind_test
     17    assert_equal(set(get_bind_addrs(pid)), set(expected))
     18  File "/mnt/bitcoin/test/functional/test_framework/util.py", line 77, in assert_equal
     19    raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
     20AssertionError: not({('0100007f', 16024)} == {('7f000001', 16024)})
     212025-02-10T18:56:43.879000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
     222025-02-10T18:56:43.880000Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner__🏃_20250210_185638/rpc_bind_2
     232025-02-10T18:56:43.880000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner__🏃_20250210_185638/rpc_bind_2/test_fra
     24mework.log
     252025-02-10T18:56:43.881000Z TestFramework (ERROR): 
     262025-02-10T18:56:43.882000Z TestFramework (ERROR): Hint: Call /mnt/bitcoin/test/functional/combine_logs.py '/tmp/test_runner_₿_🏃_20250210_185638/r
     27pc_bind_2' to consolidate all logs
     282025-02-10T18:56:43.883000Z TestFramework (ERROR): 
     292025-02-10T18:56:43.883000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or
     30 upload of the combined log.
     312025-02-10T18:56:43.883000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
     322025-02-10T18:56:43.884000Z TestFramework (ERROR): 
     33
     34
     35stderr:
     36[node 0] Cleaning up leftover process
     37
     38
     392/3 - rpc_bind.py --nonloopback failed, Duration: 2 s                                                                                              
     40                                                                                                                                                   
     41stdout:
     422025-02-10T18:56:42.950000Z TestFramework (INFO): PRNG seed is: 9124635531833716420
     432025-02-10T18:56:42.962000Z TestFramework (INFO): Initializing test directory /tmp/test_runner__🏃_20250210_185638/rpc_bind_0
     442025-02-10T18:56:42.967000Z TestFramework (INFO): Check for ipv6
     452025-02-10T18:56:42.969000Z TestFramework (INFO): Check for non-loopback interface
     462025-02-10T18:56:42.973000Z TestFramework (INFO): Using interface 172.17.0.2 for testing
     472025-02-10T18:56:42.973000Z TestFramework (INFO): Bind test for ['172.17.0.2']
     482025-02-10T18:56:43.828000Z TestFramework (ERROR): Assertion failed
     49Traceback (most recent call last):
     50  File "/mnt/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main
     51    self.run_test()
     52  File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 105, in run_test
     53    self._run_nonloopback_tests()
     54  File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 136, in _run_nonloopback_tests
     55    self.run_bind_test([self.non_loopback_ip], self.non_loopback_ip, [self.non_loopback_ip],
     56  File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 45, in run_bind_test
     57    assert_equal(set(get_bind_addrs(pid)), set(expected))
     58  File "/mnt/bitcoin/test/functional/test_framework/util.py", line 77, in assert_equal
     59    raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
     60AssertionError: not({('020011ac', 16000)} == {('ac110002', 16000)})
     612025-02-10T18:56:43.893000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
     622025-02-10T18:56:43.894000Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner__🏃_20250210_185638/rpc_bind_0
     632025-02-10T18:56:43.894000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner__🏃_20250210_185638/rpc_bind_0/test_fra
     64mework.log
     652025-02-10T18:56:43.895000Z TestFramework (ERROR): 
     662025-02-10T18:56:43.897000Z TestFramework (ERROR): Hint: Call /mnt/bitcoin/test/functional/combine_logs.py '/tmp/test_runner_₿_🏃_20250210_185638/r
     67pc_bind_0' to consolidate all logs
     682025-02-10T18:56:43.897000Z TestFramework (ERROR): 
     692025-02-10T18:56:43.897000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or
     70 upload of the combined log.
     712025-02-10T18:56:43.898000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
     722025-02-10T18:56:43.898000Z TestFramework (ERROR): 
     73
     74
     75stderr:
     76[node 0] Cleaning up leftover process
     77
     78
     79Remaining jobs: [rpc_bind.py --ipv6]                                                                                                               
     803/3 - rpc_bind.py --ipv6 failed, Duration: 3 s                                                                                                     
     81                                                                                                                                                   
     82stdout:                                                                                                                                            
     832025-02-10T18:56:42.927000Z TestFramework (INFO): PRNG seed is: 1670193901987373299                                                                
     842025-02-10T18:56:42.938000Z TestFramework (INFO): Initializing test directory /tmp/test_runner__🏃_20250210_185638/rpc_bind_1                     
     852025-02-10T18:56:42.943000Z TestFramework (INFO): Check for ipv6                                                                                   
     862025-02-10T18:56:42.945000Z TestFramework (INFO): Check for non-loopback interface                                                                 
     872025-02-10T18:56:42.949000Z TestFramework (INFO): Bind test for []                                                                                 
     882025-02-10T18:56:43.820000Z TestFramework (ERROR): Assertion failed                                                                                
     89Traceback (most recent call last):                                                                                                                 
     90  File "/mnt/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main                                                          
     91    self.run_test()
     92  File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 99, in run_test
     93    self._run_loopback_tests()
     94  File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 120, in _run_loopback_tests
     95    self.run_bind_test(None, '127.0.0.1', [],
     96  File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 45, in run_bind_test
     97    assert_equal(set(get_bind_addrs(pid)), set(expected))
     98  File "/mnt/bitcoin/test/functional/test_framework/util.py", line 77, in assert_equal
     99    raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
    100AssertionError: not({('0100007f', 16012)} == {('00000000000000000000000000000001', 16012), ('7f000001', 16012)})
    1012025-02-10T18:56:43.885000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
    1022025-02-10T18:56:43.885000Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner__🏃_20250210_185638/rpc_bind_1
    1032025-02-10T18:56:43.886000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner__🏃_20250210_185638/rpc_bind_1/test_framework.log
    1042025-02-10T18:56:43.887000Z TestFramework (ERROR): 
    1052025-02-10T18:56:43.888000Z TestFramework (ERROR): Hint: Call /mnt/bitcoin/test/functional/combine_logs.py '/tmp/test_runner_₿_🏃_20250210_185638/rpc_bind_1' to consolidate all logs
    1062025-02-10T18:56:43.888000Z TestFramework (ERROR): 
    1072025-02-10T18:56:43.889000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
    1082025-02-10T18:56:43.889000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
    1092025-02-10T18:56:43.890000Z TestFramework (ERROR): 
    110
    111
    112stderr:
    113[node 0] Cleaning up leftover process
    114
    115
    116
    117TEST                      | STATUS    | DURATION
    118
    119rpc_bind.py --ipv4        |  Failed  | 2 s
    120rpc_bind.py --ipv6        |  Failed  | 3 s
    121rpc_bind.py --nonloopback |  Failed  | 2 s
    122
    123ALL                       |  Failed  | 7 s (accumulated) 
    124Runtime: 3 s
    
  6. maflcko commented at 8:25 am on February 11, 2025: member

    Ah, I see you are manually running the tests. I thought you were running the s390x ci task.

    In the task, the rpc_bind test is excluded:

    https://github.com/bitcoin/bitcoin/blob/79f02d56ef78c22caff39713d660cabf54d452ac/ci/test/00_setup_env_s390x.sh#L14

    The comment links to #17765 (comment)

    So the exclusion back then may have been due to a permission error on aarch64 or s390x, looking at the discussion. Also, the qemu wrapping back then was done on bitcoind only (similar to the valgrind wrapping), but today the wrapping is taken care of by the container engine. Albeit, the valgrind exclusion seems to exist as well, still:

    https://github.com/bitcoin/bitcoin/blob/79f02d56ef78c22caff39713d660cabf54d452ac/ci/test/00_setup_env_native_valgrind.sh#L14

    Moreover, the unrelated --ipv6 issue remains as well (unchanged).

    Finally, on macOS, you report wallet_sendall.py --descriptors | ✖ Failed | 42 s. This seems to be unrelated to networking?


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: 2025-02-22 06:12 UTC

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