Networking tests fail on emulated big-endian systems #31812

issue l0rinc opened 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:

    TEST                                                     | STATUS    | DURATION
    
    example_test.py                                          | ✓ Passed  | 6 s
    feature_abortnode.py                                     | ✓ Passed  | 3 s
    feature_addrman.py                                       | ✓ Passed  | 10 s
    feature_anchors.py                                       | ✓ Passed  | 6 s
    feature_asmap.py                                         | ✓ Passed  | 11 s
    feature_assumeutxo.py                                    | ✓ Passed  | 77 s
    feature_assumevalid.py                                   | ✓ Passed  | 63 s
    feature_bip68_sequence.py                                | ✓ Passed  | 62 s
    feature_block.py                                         | ✓ Passed  | 662 s
    feature_blocksdir.py                                     | ✓ Passed  | 3 s
    feature_blocksxor.py                                     | ✓ Passed  | 8 s
    feature_cltv.py                                          | ✓ Passed  | 3 s
    feature_coinstatsindex.py                                | ✓ Passed  | 13 s
    feature_config_args.py                                   | ✓ Passed  | 38 s
    feature_csv_activation.py                                | ✓ Passed  | 53 s
    feature_dersig.py                                        | ✓ Passed  | 3 s
    feature_dirsymlinks.py                                   | ✓ Passed  | 3 s
    feature_discover.py                                      | ✓ Passed  | 6 s
    feature_fastprune.py                                     | ✓ Passed  | 3 s
    feature_fee_estimation.py                                | ✓ Passed  | 176 s
    feature_filelock.py                                      | ✓ Passed  | 5 s
    feature_framework_miniwallet.py                          | ✓ Passed  | 51 s
    feature_framework_unit_tests.py                          | ✓ Passed  | 86 s
    feature_help.py                                          | ✓ Passed  | 2 s
    feature_includeconf.py                                   | ✓ Passed  | 6 s
    feature_init.py                                          | ✓ Passed  | 29 s
    feature_loadblock.py                                     | ✓ Passed  | 6 s
    feature_logging.py                                       | ✓ Passed  | 9 s
    feature_maxtipage.py                                     | ✓ Passed  | 25 s
    feature_maxuploadtarget.py                               | ✓ Passed  | 214 s
    feature_minchainwork.py                                  | ✓ Passed  | 13 s
    feature_notifications.py                                 | ✓ Passed  | 11 s
    feature_nulldummy.py                                     | ✓ Passed  | 5 s
    feature_port.py                                          | ✓ Passed  | 7 s
    feature_posix_fs_permissions.py                          | ✓ Passed  | 2 s
    feature_presegwit_node_upgrade.py                        | ✓ Passed  | 4 s
    feature_proxy.py                                         | ✓ Passed  | 12 s
    feature_rbf.py                                           | ✓ Passed  | 38 s
    feature_reindex.py                                       | ✓ Passed  | 27 s
    feature_reindex_readonly.py                              | ✓ Passed  | 3 s
    feature_remove_pruned_files_on_startup.py                | ✓ Passed  | 11 s
    feature_segwit.py --descriptors --v1transport            | ✓ Passed  | 17 s
    feature_segwit.py --descriptors --v2transport            | ✓ Passed  | 16 s
    feature_segwit.py --legacy-wallet                        | ✓ Passed  | 39 s
    feature_settings.py                                      | ✓ Passed  | 11 s
    feature_shutdown.py                                      | ✓ Passed  | 3 s
    feature_signet.py                                        | ✓ Passed  | 14 s
    feature_startupnotify.py                                 | ✓ Passed  | 3 s
    feature_taproot.py                                       | ✓ Passed  | 542 s
    feature_uacomment.py                                     | ✓ Passed  | 7 s
    feature_utxo_set_hash.py                                 | ✓ Passed  | 4 s
    feature_versionbits_warning.py                           | ✓ Passed  | 8 s
    interface_http.py                                        | ✓ Passed  | 3 s
    interface_rest.py                                        | ✓ Passed  | 7 s
    interface_rpc.py                                         | ✓ Passed  | 5 s
    interface_zmq.py                                         | ✓ Passed  | 29 s
    mempool_accept.py                                        | ✓ Passed  | 16 s
    mempool_accept_wtxid.py                                  | ✓ Passed  | 16 s
    mempool_datacarrier.py                                   | ✓ Passed  | 4 s
    mempool_dust.py                                          | ✓ Passed  | 14 s
    mempool_ephemeral_dust.py                                | ✓ Passed  | 67 s
    mempool_expiry.py                                        | ✓ Passed  | 5 s
    mempool_limit.py                                         | ✓ Passed  | 89 s
    mempool_package_limits.py                                | ✓ Passed  | 11 s
    mempool_package_onemore.py                               | ✓ Passed  | 4 s
    mempool_package_rbf.py                                   | ✓ Passed  | 43 s
    mempool_packages.py                                      | ✓ Passed  | 8 s
    mempool_persist.py --descriptors                         | ✓ Passed  | 26 s
    mempool_reorg.py                                         | ✓ Passed  | 7 s
    mempool_resurrect.py                                     | ✓ Passed  | 3 s
    mempool_sigoplimit.py                                    | ✓ Passed  | 11 s
    mempool_spend_coinbase.py                                | ✓ Passed  | 3 s
    mempool_truc.py                                          | ✓ Passed  | 22 s
    mempool_unbroadcast.py                                   | ✓ Passed  | 20 s
    mempool_updatefromblock.py                               | ✓ Passed  | 156 s
    mining_basic.py                                          | ✓ Passed  | 38 s
    mining_getblocktemplate_longpoll.py                      | ✓ Passed  | 70 s
    mining_mainnet.py                                        | ✓ Passed  | 24 s
    mining_prioritisetransaction.py                          | ✓ Passed  | 19 s
    p2p_1p1c_network.py                                      | ✓ Passed  | 37 s
    p2p_add_connections.py                                   | ✓ Passed  | 10 s
    p2p_addr_relay.py                                        | ✓ Passed  | 24 s
    p2p_addrfetch.py                                         | ✓ Passed  | 2 s
    p2p_addrv2_relay.py                                      | ✓ Passed  | 3 s
    p2p_block_sync.py --v1transport                          | ✓ Passed  | 5 s
    p2p_block_sync.py --v2transport                          | ✓ Passed  | 4 s
    p2p_blockfilters.py                                      | ✓ Passed  | 65 s
    p2p_blocksonly.py                                        | ✓ Passed  | 16 s
    p2p_compactblocks.py                                     | ✓ Passed  | 16 s
    p2p_compactblocks_blocksonly.py                          | ✓ Passed  | 4 s
    p2p_compactblocks_hb.py --v1transport                    | ✓ Passed  | 21 s
    p2p_compactblocks_hb.py --v2transport                    | ✓ Passed  | 25 s
    p2p_disconnect_ban.py --v1transport                      | ✓ Passed  | 5 s
    p2p_disconnect_ban.py --v2transport                      | ✓ Passed  | 5 s
    p2p_dns_seeds.py                                         | ✓ Passed  | 39 s
    p2p_dos_header_tree.py                                   | ✓ Passed  | 5 s
    p2p_eviction.py                                          | ✓ Passed  | 6 s
    p2p_feefilter.py                                         | ✓ Passed  | 9 s
    p2p_filter.py                                            | ✓ Passed  | 8 s
    p2p_fingerprint.py                                       | ✓ Passed  | 3 s
    p2p_getaddr_caching.py                                   | ✓ Passed  | 34 s
    p2p_getdata.py                                           | ✓ Passed  | 2 s
    p2p_handshake.py                                         | ✓ Passed  | 5 s
    p2p_handshake.py --v2transport                           | ✓ Passed  | 9 s
    p2p_headers_sync_with_minchainwork.py                    | ✓ Passed  | 127 s
    p2p_i2p_ports.py                                         | ✓ Passed  | 2 s
    p2p_i2p_sessions.py                                      | ✓ Passed  | 2 s
    p2p_ibd_stalling.py --v1transport                        | ✓ Passed  | 26 s
    p2p_ibd_stalling.py --v2transport                        | ✓ Passed  | 46 s
    p2p_ibd_txrelay.py                                       | ✓ Passed  | 4 s
    p2p_initial_headers_sync.py                              | ✓ Passed  | 3 s
    p2p_invalid_block.py --v1transport                       | ✓ Passed  | 4 s
    p2p_invalid_block.py --v2transport                       | ✓ Passed  | 5 s
    p2p_invalid_locator.py                                   | ✓ Passed  | 4 s
    p2p_invalid_messages.py                                  | ✓ Passed  | 47 s
    p2p_invalid_tx.py --v1transport                          | ✓ Passed  | 10 s
    p2p_invalid_tx.py --v2transport                          | ✓ Passed  | 19 s
    p2p_leak.py                                              | ✓ Passed  | 8 s
    p2p_leak_tx.py --v1transport                             | ✓ Passed  | 11 s
    p2p_leak_tx.py --v2transport                             | ✓ Passed  | 12 s
    p2p_message_capture.py                                   | ✓ Passed  | 2 s
    p2p_mutated_blocks.py                                    | ✓ Passed  | 4 s
    p2p_net_deadlock.py --v1transport                        | ✓ Passed  | 6 s
    p2p_net_deadlock.py --v2transport                        | ✓ Passed  | 6 s
    p2p_nobloomfilter_messages.py                            | ✓ Passed  | 3 s
    p2p_node_network_limited.py --v1transport                | ✓ Passed  | 23 s
    p2p_node_network_limited.py --v2transport                | ✓ Passed  | 24 s
    p2p_opportunistic_1p1c.py                                | ✓ Passed  | 87 s
    p2p_orphan_handling.py                                   | ✓ Passed  | 29 s
    p2p_outbound_eviction.py                                 | ✓ Passed  | 8 s
    p2p_permissions.py                                       | ✓ Passed  | 21 s
    p2p_ping.py                                              | ✓ Passed  | 3 s
    p2p_seednode.py                                          | ✓ Passed  | 5 s
    p2p_segwit.py                                            | ✓ Passed  | 242 s
    p2p_sendheaders.py                                       | ✓ Passed  | 39 s
    p2p_sendtxrcncl.py                                       | ✓ Passed  | 10 s
    p2p_timeouts.py --v1transport                            | ✓ Passed  | 3 s
    p2p_timeouts.py --v2transport                            | ✓ Passed  | 4 s
    p2p_tx_download.py                                       | ✓ Passed  | 139 s
    p2p_tx_privacy.py                                        | ✓ Passed  | 3 s
    p2p_unrequested_blocks.py                                | ✓ Passed  | 9 s
    p2p_v2_encrypted.py                                      | ✓ Passed  | 23 s
    p2p_v2_misbehaving.py                                    | ✓ Passed  | 5 s
    p2p_v2_transport.py                                      | ✓ Passed  | 11 s
    rpc_blockchain.py --v1transport                          | ✓ Passed  | 30 s
    rpc_blockchain.py --v2transport                          | ✓ Passed  | 30 s
    rpc_createmultisig.py                                    | ✓ Passed  | 35 s
    rpc_decodescript.py                                      | ✓ Passed  | 2 s
    rpc_deprecated.py                                        | ✓ Passed  | 3 s
    rpc_deriveaddresses.py                                   | ✓ Passed  | 2 s
    rpc_deriveaddresses.py --usecli                          | ✓ Passed  | 4 s
    rpc_dumptxoutset.py                                      | ✓ Passed  | 2 s
    rpc_estimatefee.py                                       | ✓ Passed  | 2 s
    rpc_generate.py                                          | ✓ Passed  | 12 s
    rpc_getblockfilter.py                                    | ✓ Passed  | 4 s
    rpc_getblockfrompeer.py                                  | ✓ Passed  | 19 s
    rpc_getblockstats.py                                     | ✓ Passed  | 3 s
    rpc_getchaintips.py                                      | ✓ Passed  | 7 s
    rpc_getdescriptoractivity.py                             | ✓ Passed  | 6 s
    rpc_getdescriptorinfo.py                                 | ✓ Passed  | 3 s
    rpc_help.py                                              | ✓ Passed  | 4 s
    rpc_invalid_address_message.py                           | ✓ Passed  | 3 s
    rpc_invalidateblock.py                                   | ✓ Passed  | 3 s
    rpc_mempool_info.py                                      | ✓ Passed  | 3 s
    rpc_misc.py                                              | ✓ Passed  | 4 s
    rpc_named_arguments.py                                   | ✓ Passed  | 3 s
    rpc_net.py --v1transport                                 | ✓ Passed  | 55 s
    rpc_net.py --v2transport                                 | ✓ Passed  | 54 s
    rpc_orphans.py                                           | ✓ Passed  | 4 s
    rpc_packages.py                                          | ✓ Passed  | 31 s
    rpc_preciousblock.py                                     | ✓ Passed  | 4 s
    rpc_psbt.py --descriptors                                | ✓ Passed  | 34 s
    rpc_psbt.py --legacy-wallet                              | ✓ Passed  | 33 s
    rpc_rawtransaction.py --legacy-wallet                    | ✓ Passed  | 22 s
    rpc_scanblocks.py                                        | ✓ Passed  | 4 s
    rpc_scantxoutset.py                                      | ✓ Passed  | 103 s
    rpc_setban.py --v1transport                              | ✓ Passed  | 7 s
    rpc_setban.py --v2transport                              | ✓ Passed  | 7 s
    rpc_signer.py                                            | ✓ Passed  | 6 s
    rpc_signmessagewithprivkey.py                            | ✓ Passed  | 2 s
    rpc_signrawtransactionwithkey.py                         | ✓ Passed  | 3 s
    rpc_txoutproof.py                                        | ✓ Passed  | 8 s
    rpc_uptime.py                                            | ✓ Passed  | 2 s
    rpc_users.py                                             | ✓ Passed  | 24 s
    rpc_validateaddress.py                                   | ✓ Passed  | 3 s
    rpc_whitelist.py                                         | ✓ Passed  | 4 s
    tool_signet_miner.py --descriptors                       | ✓ Passed  | 9 s
    tool_signet_miner.py --legacy-wallet                     | ✓ Passed  | 6 s
    tool_wallet.py --descriptors                             | ✓ Passed  | 100 s
    tool_wallet.py --legacy-wallet                           | ✓ Passed  | 140 s
    tool_wallet.py --legacy-wallet --bdbro                   | ✓ Passed  | 142 s
    tool_wallet.py --legacy-wallet --bdbro --swap-bdb-endian | ✓ Passed  | 102 s
    wallet_abandonconflict.py --descriptors                  | ✓ Passed  | 13 s
    wallet_abandonconflict.py --legacy-wallet                | ✓ Passed  | 14 s
    wallet_address_types.py --descriptors                    | ✓ Passed  | 33 s
    wallet_address_types.py --legacy-wallet                  | ✓ Passed  | 56 s
    wallet_assumeutxo.py --descriptors                       | ✓ Passed  | 21 s
    wallet_avoid_mixing_output_types.py --descriptors        | ✓ Passed  | 8 s
    wallet_avoidreuse.py --descriptors                       | ✓ Passed  | 84 s
    wallet_avoidreuse.py --legacy-wallet                     | ✓ Passed  | 379 s
    wallet_backup.py --descriptors                           | ✓ Passed  | 46 s
    wallet_backup.py --legacy-wallet                         | ✓ Passed  | 71 s
    wallet_balance.py --descriptors                          | ✓ Passed  | 15 s
    wallet_balance.py --legacy-wallet                        | ✓ Passed  | 15 s
    wallet_basic.py --descriptors                            | ✓ Passed  | 53 s
    wallet_basic.py --legacy-wallet                          | ✓ Passed  | 59 s
    wallet_blank.py --descriptors                            | ✓ Passed  | 3 s
    wallet_blank.py --legacy-wallet                          | ✓ Passed  | 4 s
    wallet_bumpfee.py --descriptors                          | ✓ Passed  | 66 s
    wallet_bumpfee.py --legacy-wallet                        | ✓ Passed  | 66 s
    wallet_change_address.py --descriptors                   | ✓ Passed  | 17 s
    wallet_change_address.py --legacy-wallet                 | ✓ Passed  | 23 s
    wallet_coinbase_category.py --descriptors                | ✓ Passed  | 4 s
    wallet_coinbase_category.py --legacy-wallet              | ✓ Passed  | 4 s
    wallet_conflicts.py --descriptors                        | ✓ Passed  | 54 s
    wallet_conflicts.py --legacy-wallet                      | ✓ Passed  | 78 s
    wallet_create_tx.py --descriptors                        | ✓ Passed  | 22 s
    wallet_create_tx.py --legacy-wallet                      | ✓ Passed  | 31 s
    wallet_createwallet.py --descriptors                     | ✓ Passed  | 7 s
    wallet_createwallet.py --legacy-wallet                   | ✓ Passed  | 6 s
    wallet_createwallet.py --usecli                          | ✓ Passed  | 15 s
    wallet_createwalletdescriptor.py --descriptors           | ✓ Passed  | 4 s
    wallet_crosschain.py                                     | ✓ Passed  | 4 s
    wallet_descriptor.py --descriptors                       | ✓ Passed  | 46 s
    wallet_disable.py                                        | ✓ Passed  | 2 s
    wallet_dump.py --legacy-wallet                           | ✓ Passed  | 43 s
    wallet_encryption.py --descriptors                       | ✓ Passed  | 10 s
    wallet_encryption.py --legacy-wallet                     | ✓ Passed  | 9 s
    wallet_fallbackfee.py --descriptors                      | ✓ Passed  | 6 s
    wallet_fallbackfee.py --legacy-wallet                    | ✓ Passed  | 4 s
    wallet_fundrawtransaction.py --descriptors               | ✓ Passed  | 137 s
    wallet_gethdkeys.py --descriptors                        | ✓ Passed  | 5 s
    wallet_groups.py --descriptors                           | ✓ Passed  | 37 s
    wallet_groups.py --legacy-wallet                         | ✓ Passed  | 82 s
    wallet_hd.py --descriptors                               | ✓ Passed  | 13 s
    wallet_hd.py --legacy-wallet                             | ✓ Passed  | 20 s
    wallet_implicitsegwit.py --legacy-wallet                 | ✓ Passed  | 16 s
    wallet_import_rescan.py --legacy-wallet                  | ✓ Passed  | 147 s
    wallet_import_with_label.py --legacy-wallet              | ✓ Passed  | 4 s
    wallet_importmulti.py --legacy-wallet                    | ✓ Passed  | 29 s
    wallet_importprunedfunds.py --descriptors                | ✓ Passed  | 5 s
    wallet_importprunedfunds.py --legacy-wallet              | ✓ Passed  | 6 s
    wallet_keypool.py --descriptors                          | ✓ Passed  | 12 s
    wallet_keypool.py --legacy-wallet                        | ✓ Passed  | 15 s
    wallet_keypool_topup.py --descriptors                    | ✓ Passed  | 48 s
    wallet_keypool_topup.py --legacy-wallet                  | ✓ Passed  | 43 s
    wallet_labels.py --descriptors                           | ✓ Passed  | 10 s
    wallet_labels.py --legacy-wallet                         | ✓ Passed  | 16 s
    wallet_listdescriptors.py --descriptors                  | ✓ Passed  | 4 s
    wallet_listreceivedby.py --descriptors                   | ✓ Passed  | 12 s
    wallet_listreceivedby.py --legacy-wallet                 | ✓ Passed  | 10 s
    wallet_listsinceblock.py --descriptors                   | ✓ Passed  | 17 s
    wallet_listsinceblock.py --legacy-wallet                 | ✓ Passed  | 17 s
    wallet_listtransactions.py --descriptors                 | ✓ Passed  | 73 s
    wallet_multisig_descriptor_psbt.py --descriptors         | ✓ Passed  | 19 s
    wallet_multiwallet.py --descriptors                      | ✓ Passed  | 29 s
    wallet_multiwallet.py --legacy-wallet                    | ✓ Passed  | 28 s
    wallet_multiwallet.py --usecli                           | ✓ Passed  | 55 s
    wallet_orphanedreward.py                                 | ✓ Passed  | 20 s
    wallet_reindex.py --descriptors                          | ✓ Passed  | 9 s
    wallet_reindex.py --legacy-wallet                        | ✓ Passed  | 9 s
    wallet_reorgsrestore.py                                  | ✓ Passed  | 11 s
    wallet_rescan_unconfirmed.py --descriptors               | ✓ Passed  | 3 s
    wallet_resendwallettransactions.py --descriptors         | ✓ Passed  | 4 s
    wallet_resendwallettransactions.py --legacy-wallet       | ✓ Passed  | 5 s
    wallet_send.py --descriptors                             | ✓ Passed  | 49 s
    wallet_send.py --legacy-wallet                           | ✓ Passed  | 87 s
    wallet_sendmany.py --descriptors                         | ✓ Passed  | 4 s
    wallet_sendmany.py --legacy-wallet                       | ✓ Passed  | 3 s
    wallet_signer.py --descriptors                           | ✓ Passed  | 19 s
    wallet_signmessagewithaddress.py                         | ✓ Passed  | 3 s
    wallet_signrawtransactionwithwallet.py --descriptors     | ✓ Passed  | 10 s
    wallet_signrawtransactionwithwallet.py --legacy-wallet   | ✓ Passed  | 6 s
    wallet_simulaterawtx.py --descriptors                    | ✓ Passed  | 5 s
    wallet_simulaterawtx.py --legacy-wallet                  | ✓ Passed  | 5 s
    wallet_spend_unconfirmed.py                              | ✓ Passed  | 12 s
    wallet_startup.py                                        | ✓ Passed  | 7 s
    wallet_taproot.py --descriptors                          | ✓ Passed  | 410 s
    wallet_timelock.py                                       | ✓ Passed  | 3 s
    wallet_transactiontime_rescan.py --descriptors           | ✓ Passed  | 49 s
    wallet_transactiontime_rescan.py --legacy-wallet         | ✓ Passed  | 136 s
    wallet_txn_clone.py                                      | ✓ Passed  | 8 s
    wallet_txn_clone.py --mineblock                          | ✓ Passed  | 8 s
    wallet_txn_clone.py --segwit                             | ✓ Passed  | 6 s
    wallet_txn_doublespend.py --descriptors                  | ✓ Passed  | 7 s
    wallet_txn_doublespend.py --legacy-wallet                | ✓ Passed  | 8 s
    wallet_txn_doublespend.py --mineblock                    | ✓ Passed  | 7 s
    wallet_watchonly.py --legacy-wallet                      | ✓ Passed  | 4 s
    wallet_watchonly.py --usecli --legacy-wallet             | ✓ Passed  | 9 s
    feature_bind_port_discover.py                            | ○ Skipped | 1 s
    feature_bind_port_externalip.py                          | ○ Skipped | 1 s
    feature_unsupported_utxo_db.py                           | ○ Skipped | 1 s
    interface_usdt_coinselection.py                          | ○ Skipped | 1 s
    interface_usdt_mempool.py                                | ○ Skipped | 2 s
    interface_usdt_net.py                                    | ○ Skipped | 2 s
    interface_usdt_utxocache.py                              | ○ Skipped | 1 s
    interface_usdt_validation.py                             | ○ Skipped | 2 s
    mempool_compatibility.py                                 | ○ Skipped | 1 s
    wallet_backwards_compatibility.py --descriptors          | ○ Skipped | 1 s
    wallet_backwards_compatibility.py --legacy-wallet        | ○ Skipped | 1 s
    wallet_inactive_hdchains.py --legacy-wallet              | ○ Skipped | 1 s
    wallet_migration.py                                      | ○ Skipped | 1 s
    wallet_upgradewallet.py --legacy-wallet                  | ○ Skipped | 1 s
    feature_bind_extra.py                                    | ✖ Failed  | 2 s
    interface_bitcoin_cli.py --descriptors                   | ✖ Failed  | 6 s
    interface_bitcoin_cli.py --legacy-wallet                 | ✖ Failed  | 6 s
    rpc_bind.py --ipv4                                       | ✖ Failed  | 2 s
    rpc_bind.py --ipv6                                       | ✖ Failed  | 2 s
    rpc_bind.py --nonloopback                                | ✖ Failed  | 2 s
    wallet_fast_rescan.py --descriptors                      | ✖ Failed  | 69 s
    wallet_fundrawtransaction.py --legacy-wallet             | ✖ Failed  | 155 s
    wallet_importdescriptors.py --descriptors                | ✖ Failed  | 105 s
    wallet_listtransactions.py --legacy-wallet               | ✖ Failed  | 45 s
    wallet_miniscript.py --descriptors                       | ✖ Failed  | 116 s
    wallet_sendall.py --descriptors                          | ✖ Failed  | 42 s
    wallet_sendall.py --legacy-wallet                        | ✖ Failed  | 48 s
    
    ALL                                                      | ✖ Failed  | 9500 s (accumulated)
    Runtime: 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):

    # lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 24.04.1 LTS
    Release:        24.04
    Codename:       noble
    
    1/3 - rpc_bind.py --ipv4 failed, Duration: 2 s                                                                                                     
                                                                                                                                                       
    stdout:                                                                                                                                            
    2025-02-10T18:56:42.927000Z TestFramework (INFO): PRNG seed is: 1808665840999458851                                                                
    2025-02-10T18:56:42.938000Z TestFramework (INFO): Initializing test directory /tmp/test_runner_₿_🏃_20250210_185638/rpc_bind_2                     
    2025-02-10T18:56:42.943000Z TestFramework (INFO): Check for ipv6                                                                                   
    2025-02-10T18:56:42.945000Z TestFramework (INFO): Check for non-loopback interface                                                                 
    2025-02-10T18:56:42.949000Z TestFramework (INFO): Bind test for ['127.0.0.1']                                                                      
    2025-02-10T18:56:43.814000Z TestFramework (ERROR): Assertion failed                                                                                
    Traceback (most recent call last):                                                                                                                 
      File "/mnt/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main                                                          
        self.run_test()
      File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 99, in run_test
        self._run_loopback_tests()
      File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 110, in _run_loopback_tests
        self.run_bind_test(['127.0.0.1'], '127.0.0.1', ['127.0.0.1'],
      File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 45, in run_bind_test
        assert_equal(set(get_bind_addrs(pid)), set(expected))
      File "/mnt/bitcoin/test/functional/test_framework/util.py", line 77, in assert_equal
        raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
    AssertionError: not({('0100007f', 16024)} == {('7f000001', 16024)})
    2025-02-10T18:56:43.879000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
    2025-02-10T18:56:43.880000Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner_₿_🏃_20250210_185638/rpc_bind_2
    2025-02-10T18:56:43.880000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner_₿_🏃_20250210_185638/rpc_bind_2/test_fra
    mework.log
    2025-02-10T18:56:43.881000Z TestFramework (ERROR): 
    2025-02-10T18:56:43.882000Z TestFramework (ERROR): Hint: Call /mnt/bitcoin/test/functional/combine_logs.py '/tmp/test_runner_₿_🏃_20250210_185638/r
    pc_bind_2' to consolidate all logs
    2025-02-10T18:56:43.883000Z TestFramework (ERROR): 
    2025-02-10T18:56:43.883000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or
     upload of the combined log.
    2025-02-10T18:56:43.883000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
    2025-02-10T18:56:43.884000Z TestFramework (ERROR): 
    
    
    stderr:
    [node 0] Cleaning up leftover process
    
    
    2/3 - rpc_bind.py --nonloopback failed, Duration: 2 s                                                                                              
                                                                                                                                                       
    stdout:
    2025-02-10T18:56:42.950000Z TestFramework (INFO): PRNG seed is: 9124635531833716420
    2025-02-10T18:56:42.962000Z TestFramework (INFO): Initializing test directory /tmp/test_runner_₿_🏃_20250210_185638/rpc_bind_0
    2025-02-10T18:56:42.967000Z TestFramework (INFO): Check for ipv6
    2025-02-10T18:56:42.969000Z TestFramework (INFO): Check for non-loopback interface
    2025-02-10T18:56:42.973000Z TestFramework (INFO): Using interface 172.17.0.2 for testing
    2025-02-10T18:56:42.973000Z TestFramework (INFO): Bind test for ['172.17.0.2']
    2025-02-10T18:56:43.828000Z TestFramework (ERROR): Assertion failed
    Traceback (most recent call last):
      File "/mnt/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main
        self.run_test()
      File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 105, in run_test
        self._run_nonloopback_tests()
      File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 136, in _run_nonloopback_tests
        self.run_bind_test([self.non_loopback_ip], self.non_loopback_ip, [self.non_loopback_ip],
      File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 45, in run_bind_test
        assert_equal(set(get_bind_addrs(pid)), set(expected))
      File "/mnt/bitcoin/test/functional/test_framework/util.py", line 77, in assert_equal
        raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
    AssertionError: not({('020011ac', 16000)} == {('ac110002', 16000)})
    2025-02-10T18:56:43.893000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
    2025-02-10T18:56:43.894000Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner_₿_🏃_20250210_185638/rpc_bind_0
    2025-02-10T18:56:43.894000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner_₿_🏃_20250210_185638/rpc_bind_0/test_fra
    mework.log
    2025-02-10T18:56:43.895000Z TestFramework (ERROR): 
    2025-02-10T18:56:43.897000Z TestFramework (ERROR): Hint: Call /mnt/bitcoin/test/functional/combine_logs.py '/tmp/test_runner_₿_🏃_20250210_185638/r
    pc_bind_0' to consolidate all logs
    2025-02-10T18:56:43.897000Z TestFramework (ERROR): 
    2025-02-10T18:56:43.897000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or
     upload of the combined log.
    2025-02-10T18:56:43.898000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
    2025-02-10T18:56:43.898000Z TestFramework (ERROR): 
    
    
    stderr:
    [node 0] Cleaning up leftover process
    
    
    Remaining jobs: [rpc_bind.py --ipv6]                                                                                                               
    3/3 - rpc_bind.py --ipv6 failed, Duration: 3 s                                                                                                     
                                                                                                                                                       
    stdout:                                                                                                                                            
    2025-02-10T18:56:42.927000Z TestFramework (INFO): PRNG seed is: 1670193901987373299                                                                
    2025-02-10T18:56:42.938000Z TestFramework (INFO): Initializing test directory /tmp/test_runner_₿_🏃_20250210_185638/rpc_bind_1                     
    2025-02-10T18:56:42.943000Z TestFramework (INFO): Check for ipv6                                                                                   
    2025-02-10T18:56:42.945000Z TestFramework (INFO): Check for non-loopback interface                                                                 
    2025-02-10T18:56:42.949000Z TestFramework (INFO): Bind test for []                                                                                 
    2025-02-10T18:56:43.820000Z TestFramework (ERROR): Assertion failed                                                                                
    Traceback (most recent call last):                                                                                                                 
      File "/mnt/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main                                                          
        self.run_test()
      File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 99, in run_test
        self._run_loopback_tests()
      File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 120, in _run_loopback_tests
        self.run_bind_test(None, '127.0.0.1', [],
      File "/mnt/bitcoin/build_dev_mode/test/functional/rpc_bind.py", line 45, in run_bind_test
        assert_equal(set(get_bind_addrs(pid)), set(expected))
      File "/mnt/bitcoin/test/functional/test_framework/util.py", line 77, in assert_equal
        raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
    AssertionError: not({('0100007f', 16012)} == {('00000000000000000000000000000001', 16012), ('7f000001', 16012)})
    2025-02-10T18:56:43.885000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
    2025-02-10T18:56:43.885000Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner_₿_🏃_20250210_185638/rpc_bind_1
    2025-02-10T18:56:43.886000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner_₿_🏃_20250210_185638/rpc_bind_1/test_framework.log
    2025-02-10T18:56:43.887000Z TestFramework (ERROR): 
    2025-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
    2025-02-10T18:56:43.888000Z TestFramework (ERROR): 
    2025-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.
    2025-02-10T18:56:43.889000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
    2025-02-10T18:56:43.890000Z TestFramework (ERROR): 
    
    
    stderr:
    [node 0] Cleaning up leftover process
    
    
    
    TEST                      | STATUS    | DURATION
    
    rpc_bind.py --ipv4        | ✖ Failed  | 2 s
    rpc_bind.py --ipv6        | ✖ Failed  | 3 s
    rpc_bind.py --nonloopback | ✖ Failed  | 2 s
    
    ALL                       | ✖ Failed  | 7 s (accumulated) 
    Runtime: 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?

  7. l0rinc commented at 7:57 PM on March 4, 2025: contributor

    I reran the whole thing, the failures on Mac are:

    feature_bind_extra.py                                                | ✖ Failed  | 1 s
    interface_bitcoin_cli.py --descriptors                               | ✖ Failed  | 3 s
    interface_bitcoin_cli.py --legacy-wallet                             | ✖ Failed  | 3 s
    rpc_bind.py --ipv4                                                   | ✖ Failed  | 1 s
    rpc_bind.py --ipv6                                                   | ✖ Failed  | 1 s
    rpc_bind.py --nonloopback                                            | ✖ Failed  | 1 s
    wallet_importdescriptors.py --descriptors                            | ✖ Failed  | 72 s
    wallet_miniscript.py --descriptors                                   | ✖ Failed  | 104 s
    

    wallet_sendall.py was passing this time.

    rpc_bind and feature_bind_extra fail with the mentioned endian differences:

    <details> <summary>Details</summary>

    87/318 - feature_bind_extra.py failed, Duration: 1 s
    
    stdout:
    2025-03-04T18:12:12.808000Z TestFramework (INFO): PRNG seed is: 3039912222751199635
    2025-03-04T18:12:12.814000Z TestFramework (INFO): Initializing test directory /tmp/test_runner_₿_🏃_20250304_180603/feature_bind_extra_223
    2025-03-04T18:12:13.412000Z TestFramework (INFO): Checking listening ports of node 0 with ['-bind=127.0.0.1:13679=onion']
    2025-03-04T18:12:13.429000Z TestFramework (ERROR): Assertion failed
    Traceback (most recent call last):
      File "/mnt/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main
        self.run_test()
      File "/mnt/bitcoin/build_dev_mode/test/functional/feature_bind_extra.py", line 88, in run_test
        assert_equal(binds, set(expected_services))
      File "/mnt/bitcoin/test/functional/test_framework/util.py", line 77, in assert_equal
        raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
    AssertionError: not({('0100007f', 13679)} == {('7f000001', 13679)})
    2025-03-04T18:12:13.489000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
    2025-03-04T18:12:13.489000Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner_₿_🏃_20250304_180603/feature_bind_extra_223
    2025-03-04T18:12:13.489000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner_₿_🏃_20250304_180603/feature_bind_extra_223/test_framework.log
    2025-03-04T18:12:13.490000Z TestFramework (ERROR):
    2025-03-04T18:12:13.490000Z TestFramework (ERROR): Hint: Call /mnt/bitcoin/test/functional/combine_logs.py '/tmp/test_runner_₿_🏃_20250304_180603/feature_bind_extra_223' to consolidate all logs
    2025-03-04T18:12:13.490000Z TestFramework (ERROR):
    2025-03-04T18:12:13.491000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
    2025-03-04T18:12:13.491000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
    2025-03-04T18:12:13.491000Z TestFramework (ERROR):
    
    
    stderr:
    [node 2] Cleaning up leftover process
    [node 1] Cleaning up leftover process
    [node 0] Cleaning up leftover process
    

    </details>

    the interface_bitcoin_cli tests are likely also related to the IPv6 big-endian failures:

    <details> <summary>Details</summary>

    root@40fcec3d6cdf:/mnt/bitcoin# build_dev_mode/test/functional/test_runner.py "interface_bitcoin_cli.py --descriptors" "interface_bitcoin_cli.py --legacy-wallet"
    Temporary test directory at /tmp/test_runner_₿_🏃_20250304_185252
    Remaining jobs: [interface_bitcoin_cli.py --descriptors, interface_bitcoin_cli.py --legacy-wallet]
    1/2 - interface_bitcoin_cli.py --descriptors failed, Duration: 3 s
    
    stdout:
    2025-03-04T18:52:54.902000Z TestFramework (INFO): PRNG seed is: 4498386837476113083
    2025-03-04T18:52:54.908000Z TestFramework (INFO): Initializing test directory /tmp/test_runner_₿_🏃_20250304_185252/interface_bitcoin_cli_1
    2025-03-04T18:52:55.726000Z TestFramework (INFO): Compare responses from getblockchaininfo RPC and `bitcoin-cli getblockchaininfo`
    2025-03-04T18:52:55.779000Z TestFramework (INFO): Test named arguments
    2025-03-04T18:52:55.924000Z TestFramework (INFO): Test that later cli named arguments values silently overwrite earlier ones
    2025-03-04T18:52:56.019000Z TestFramework (INFO): Test -stdinrpcpass option
    2025-03-04T18:52:56.374000Z TestFramework (INFO): Test -stdin and -stdinrpcpass
    2025-03-04T18:52:56.730000Z TestFramework (INFO): Test connecting to a non-existing server
    2025-03-04T18:52:56.776000Z TestFramework (INFO): Test handling of invalid ports in rpcconnect
    2025-03-04T18:52:56.929000Z TestFramework (INFO): Checking for IPv6
    2025-03-04T18:52:57.082000Z TestFramework (INFO): Test handling of invalid ports in rpcport
    2025-03-04T18:52:57.232000Z TestFramework (INFO): Test port usage preferences
    2025-03-04T18:52:57.412000Z TestFramework (ERROR): Called Process failed with 'Warning: Port specified in both -rpcconnect and -rpcport. Using -rpcport 16012
    error: timeout on transient error: Could not connect to the server ::1:16012
    
    Make sure the bitcoind server is running and that you are connecting to the correct RPC port.
    Use "bitcoin-cli -help" for more info.
    '
    Traceback (most recent call last):
      File "/mnt/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main
        self.run_test()
      File "/mnt/bitcoin/build_dev_mode/test/functional/interface_bitcoin_cli.py", line 152, in run_test
        assert_equal(BLOCKS, self.nodes[0].cli("-rpcconnect=[::1]:18999", f'-rpcport={node_rpc_port}').getblockcount())
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/mnt/bitcoin/test/functional/test_framework/test_node.py", line 849, in __call__
        return self.cli.send_cli(self.command, *args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/mnt/bitcoin/test/functional/test_framework/test_node.py", line 914, in send_cli
        raise subprocess.CalledProcessError(returncode, self.binary, output=cli_stderr)
    subprocess.CalledProcessError: Command '/mnt/bitcoin/build_dev_mode/src/bitcoin-cli' returned non-zero exit status 1.
    2025-03-04T18:52:57.475000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
    2025-03-04T18:52:57.475000Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner_₿_🏃_20250304_185252/interface_bitcoin_cli_1
    2025-03-04T18:52:57.475000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner_₿_🏃_20250304_185252/interface_bitcoin_cli_1/test_framework.log
    2025-03-04T18:52:57.476000Z TestFramework (ERROR): 
    2025-03-04T18:52:57.476000Z TestFramework (ERROR): Hint: Call /mnt/bitcoin/test/functional/combine_logs.py '/tmp/test_runner_₿_🏃_20250304_185252/interface_bitcoin_cli_1' to consolidate all logs
    2025-03-04T18:52:57.477000Z TestFramework (ERROR): 
    2025-03-04T18:52:57.477000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
    2025-03-04T18:52:57.477000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
    2025-03-04T18:52:57.477000Z TestFramework (ERROR): 
    
    
    stderr:
    [node 0] Cleaning up leftover process
    
    
    Remaining jobs: [interface_bitcoin_cli.py --legacy-wallet]
    2/2 - interface_bitcoin_cli.py --legacy-wallet failed, Duration: 4 s
    
    stdout:
    2025-03-04T18:52:54.905000Z TestFramework (INFO): PRNG seed is: 8805266175087139086
    2025-03-04T18:52:54.912000Z TestFramework (INFO): Initializing test directory /tmp/test_runner_₿_🏃_20250304_185252/interface_bitcoin_cli_0
    2025-03-04T18:52:55.780000Z TestFramework (INFO): Compare responses from getblockchaininfo RPC and `bitcoin-cli getblockchaininfo`
    2025-03-04T18:52:55.835000Z TestFramework (INFO): Test named arguments
    2025-03-04T18:52:55.978000Z TestFramework (INFO): Test that later cli named arguments values silently overwrite earlier ones
    2025-03-04T18:52:56.072000Z TestFramework (INFO): Test -stdinrpcpass option
    2025-03-04T18:52:56.417000Z TestFramework (INFO): Test -stdin and -stdinrpcpass
    2025-03-04T18:52:56.766000Z TestFramework (INFO): Test connecting to a non-existing server
    2025-03-04T18:52:56.811000Z TestFramework (INFO): Test handling of invalid ports in rpcconnect
    2025-03-04T18:52:56.964000Z TestFramework (INFO): Checking for IPv6
    2025-03-04T18:52:57.118000Z TestFramework (INFO): Test handling of invalid ports in rpcport
    2025-03-04T18:52:57.270000Z TestFramework (INFO): Test port usage preferences
    2025-03-04T18:52:57.452000Z TestFramework (ERROR): Called Process failed with 'Warning: Port specified in both -rpcconnect and -rpcport. Using -rpcport 16000
    error: timeout on transient error: Could not connect to the server ::1:16000
    
    Make sure the bitcoind server is running and that you are connecting to the correct RPC port.
    Use "bitcoin-cli -help" for more info.
    '
    Traceback (most recent call last):
      File "/mnt/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main
        self.run_test()
      File "/mnt/bitcoin/build_dev_mode/test/functional/interface_bitcoin_cli.py", line 152, in run_test
        assert_equal(BLOCKS, self.nodes[0].cli("-rpcconnect=[::1]:18999", f'-rpcport={node_rpc_port}').getblockcount())
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/mnt/bitcoin/test/functional/test_framework/test_node.py", line 849, in __call__
        return self.cli.send_cli(self.command, *args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/mnt/bitcoin/test/functional/test_framework/test_node.py", line 914, in send_cli
        raise subprocess.CalledProcessError(returncode, self.binary, output=cli_stderr)
    subprocess.CalledProcessError: Command '/mnt/bitcoin/build_dev_mode/src/bitcoin-cli' returned non-zero exit status 1.
    2025-03-04T18:52:57.514000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
    2025-03-04T18:52:57.515000Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner_₿_🏃_20250304_185252/interface_bitcoin_cli_0
    2025-03-04T18:52:57.515000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner_₿_🏃_20250304_185252/interface_bitcoin_cli_0/test_framework.log
    2025-03-04T18:52:57.516000Z TestFramework (ERROR): 
    2025-03-04T18:52:57.516000Z TestFramework (ERROR): Hint: Call /mnt/bitcoin/test/functional/combine_logs.py '/tmp/test_runner_₿_🏃_20250304_185252/interface_bitcoin_cli_0' to consolidate all logs
    2025-03-04T18:52:57.516000Z TestFramework (ERROR): 
    2025-03-04T18:52:57.516000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
    2025-03-04T18:52:57.517000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
    2025-03-04T18:52:57.517000Z TestFramework (ERROR): 
    
    
    stderr:
    [node 0] Cleaning up leftover process
    
    
    
    TEST                                     | STATUS    | DURATION
    
    interface_bitcoin_cli.py --descriptors   | ✖ Failed  | 3 s
    interface_bitcoin_cli.py --legacy-wallet | ✖ Failed  | 4 s
    
    ALL                                      | ✖ Failed  | 7 s (accumulated) 
    Runtime: 4 s
    

    </details>

    While wallet_importdescriptors seem to be timing out:

    <details> <summary>Details</summary>

    build_dev_mode/test/functional/test_runner.py "wallet_importdescriptors.py --descriptors"
    
    2025-03-04T19:04:22.466000Z TestFramework (INFO): PRNG seed is: 1967788660642355360
    2025-03-04T19:04:22.467000Z TestFramework (DEBUG): Setting up network thread
    2025-03-04T19:04:22.472000Z TestFramework (INFO): Initializing test directory /tmp/test_runner_₿_🏃_20250304_190421/wallet_importdescriptors_0
    2025-03-04T19:04:22.481000Z TestFramework.node0 (DEBUG): bitcoind started, waiting for RPC to come up
    2025-03-04T19:04:22.485000Z TestFramework.node1 (DEBUG): bitcoind started, waiting for RPC to come up
    2025-03-04T19:04:23.020000Z TestFramework.node0 (DEBUG): RPC successfully started
    2025-03-04T19:04:23.036000Z TestFramework.node1 (DEBUG): RPC successfully started
    2025-03-04T19:04:23.135000Z TestFramework (INFO): Setting up wallets
    2025-03-04T19:04:23.317000Z TestFramework (INFO): Mining coins
    2025-03-04T19:04:24.839000Z TestFramework (INFO): Import should fail if a descriptor is not provided
    2025-03-04T19:04:24.868000Z TestFramework (INFO): Should import a p2pkh descriptor
    2025-03-04T19:04:24.895000Z TestFramework (INFO): Test can import same descriptor with public key twice
    2025-03-04T19:04:24.907000Z TestFramework (INFO): Test can update descriptor label
    2025-03-04T19:04:24.920000Z TestFramework (INFO): Internal addresses cannot have labels
    2025-03-04T19:04:24.922000Z TestFramework (INFO): Internal addresses should be detected as such
    2025-03-04T19:04:24.986000Z TestFramework (INFO): Should not import a p2sh-p2wpkh descriptor without checksum
    2025-03-04T19:04:24.989000Z TestFramework (INFO): Should not import a p2sh-p2wpkh descriptor that has range specified
    2025-03-04T19:04:24.993000Z TestFramework (INFO): Should not import a p2sh-p2wpkh descriptor and have it set to active
    2025-03-04T19:04:24.995000Z TestFramework (INFO): Should import a (non-active) p2sh-p2wpkh descriptor
    2025-03-04T19:04:25.087000Z TestFramework (INFO): Should import a 1-of-2 bare multisig from descriptor
    2025-03-04T19:04:25.103000Z TestFramework (INFO): Should not treat individual keys from the imported bare multisig as watchonly
    2025-03-04T19:04:25.105000Z TestFramework (INFO): Ranged descriptors cannot have labels
    2025-03-04T19:04:25.109000Z TestFramework (INFO): Private keys required for private keys enabled wallet
    2025-03-04T19:04:25.116000Z TestFramework (INFO): Ranged descriptor import should warn without a specified range
    2025-03-04T19:04:25.140000Z TestFramework (INFO): Should not import a ranged descriptor that includes xpriv into a watch-only wallet
    2025-03-04T19:04:25.144000Z TestFramework (INFO): Should not import a descriptor with hardened derivations when private keys are disabled
    2025-03-04T19:04:25.169000Z TestFramework (INFO): Verify we can only extend descriptor's range
    2025-03-04T19:04:25.451000Z TestFramework (INFO): Check we can change descriptor internal flag
    2025-03-04T19:04:25.632000Z TestFramework (INFO): Key ranges should be imported in order
    2025-03-04T19:04:25.816000Z TestFramework (INFO): Check we can change next_index
    2025-03-04T19:04:25.952000Z TestFramework (INFO): Check imported descriptors are not active by default
    2025-03-04T19:04:25.973000Z TestFramework (INFO): Check can activate inactive descriptor
    2025-03-04T19:04:25.998000Z TestFramework (INFO): Check can deactivate active descriptor
    2025-03-04T19:04:26.020000Z TestFramework (INFO): Verify activation state is persistent
    2025-03-04T19:04:26.089000Z TestFramework (INFO): Should import a descriptor with a WIF private key as spendable
    2025-03-04T19:04:26.104000Z TestFramework (INFO): Test can import same descriptor with private key twice
    2025-03-04T19:04:27.258000Z TestFramework (INFO): Test that multisigs can be imported, signed for, and getnewaddress'd
    2025-03-04T19:04:33.073000Z TestFramework.node0 (DEBUG): TestNode.generate() dispatches `generate` call to `generatetoaddress`
    2025-03-04T19:04:40.275000Z TestFramework.node0 (DEBUG): TestNode.generate() dispatches `generate` call to `generatetoaddress`
    2025-03-04T19:04:47.396000Z TestFramework (INFO): Multisig with distributed keys
    2025-03-04T19:05:00.035000Z TestFramework (INFO): We can create and use a huge multisig under P2WSH
    2025-03-04T19:05:44.856000Z TestFramework.node0 (DEBUG): TestNode.generate() dispatches `generate` call to `generatetoaddress`
    2025-03-04T19:05:45.096000Z TestFramework (INFO): Under P2SH, multisig are standard with up to 15 compressed keys
    2025-03-04T19:06:18.502000Z TestFramework.node0 (DEBUG): TestNode.generate() dispatches `generate` call to `generatetoaddress`
    2025-03-04T19:06:19.764000Z TestFramework (INFO): Amending multisig with new private keys
    2025-03-04T19:06:26.270000Z TestFramework (INFO): Combo descriptors cannot be active
    2025-03-04T19:06:26.274000Z TestFramework (INFO): Descriptors with no type cannot be active
    2025-03-04T19:06:26.297000Z TestFramework (INFO): Test importing a descriptor to an encrypted wallet
    2025-03-04T19:06:56.664000Z TestFramework (ERROR): Assertion failed
    Traceback (most recent call last):
      File "/mnt/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main
        self.run_test()
      File "/mnt/bitcoin/build_dev_mode/test/functional/wallet_importdescriptors.py", line 692, in run_test
        with self.nodes[0].assert_debug_log(expected_msgs=["Rescan started from block 0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206... (slow variant inspecting all blocks)"], timeout=10):
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3.12/contextlib.py", line 144, in __exit__
        next(self.gen)
      File "/mnt/bitcoin/test/functional/test_framework/test_node.py", line 519, in assert_debug_log
        self._raise_assertion_error('Expected messages "{}" does not partially match log:\n\n{}\n\n'.format(str(expected_msgs), print_log))
      File "/mnt/bitcoin/test/functional/test_framework/test_node.py", line 198, in _raise_assertion_error
        raise AssertionError(self._node_msg(msg))
    AssertionError: [node 0] Expected messages "['Rescan started from block 0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206... (slow variant inspecting all blocks)']" does not partially match log:
    
     - 2025-03-04T19:06:37.823007Z [http] [httpserver.cpp:305] [http_request_cb] [http] Received a POST request for /wallet/encrypted_wallet from 127.0.0.1:34374
     - 2025-03-04T19:06:37.823296Z [httpworker.13] [rpc/request.cpp:241] [parse] [rpc] ThreadRPCServer method=importdescriptors user=__cookie__
     - 2025-03-04T19:06:37.830911Z [httpworker.13] [wallet/sqlite.cpp:55] [TraceSqlCallback] [walletdb:trace] [/tmp/test_runner_₿_🏃_20250304_190421/wallet_importdescriptors_0/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: INSERT INTO main VALUES(?, ?)
     - 2025-03-04T19:06:37.831192Z [httpworker.13] [wallet/sqlite.cpp:55] [TraceSqlCallback] [walletdb:trace] [/tmp/test_runner_₿_🏃_20250304_190421/wallet_importdescriptors_0/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: DELETE FROM main WHERE key = ?
     - 2025-03-04T19:06:37.831465Z [httpworker.13] [wallet/sqlite.cpp:55] [TraceSqlCallback] [walletdb:trace] [/tmp/test_runner_₿_🏃_20250304_190421/wallet_importdescriptors_0/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: BEGIN TRANSACTION
     - 2025-03-04T19:06:37.838855Z [httpworker.13] [wallet/sqlite.cpp:55] [TraceSqlCallback] [walletdb:trace] [/tmp/test_runner_₿_🏃_20250304_190421/wallet_importdescriptors_0/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: INSERT or REPLACE into main values(?, ?)
     - 2025-03-04T19:06:37.847305Z [httpworker.13] [wallet/sqlite.cpp:55] [TraceSqlCallback] [walletdb:trace] [/tmp/test_runner_₿_🏃_20250304_190421/wallet_importdescriptors_0/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: INSERT or REPLACE into main values(?, ?)
    [...]
     - 2025-03-04T19:06:47.827776Z [httpworker.13] [wallet/sqlite.cpp:55] [TraceSqlCallback] [walletdb:trace] [/tmp/test_runner_₿_🏃_20250304_190421/wallet_importdescriptors_0/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: INSERT or REPLACE into main values(?, ?)
     - 2025-03-04T19:06:47.830586Z [httpworker.13] [wallet/sqlite.cpp:55] [TraceSqlCallback] [walletdb:trace] [/tmp/test_runner_₿_🏃_20250304_190421/wallet_importdescriptors_0/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: INSERT or REPLACE into main values(?, ?)
    
    
    2025-03-04T19:06:56.757000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
    2025-03-04T19:06:56.758000Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner_₿_🏃_20250304_190421/wallet_importdescriptors_0
    2025-03-04T19:06:56.758000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner_₿_🏃_20250304_190421/wallet_importdescriptors_0/test_framework.log
    2025-03-04T19:06:56.758000Z TestFramework (ERROR): 
    2025-03-04T19:06:56.759000Z TestFramework (ERROR): Hint: Call /mnt/bitcoin/test/functional/combine_logs.py '/tmp/test_runner_₿_🏃_20250304_190421/wallet_importdescriptors_0' to consolidate all logs
    2025-03-04T19:06:56.759000Z TestFramework (ERROR): 
    2025-03-04T19:06:56.759000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
    2025-03-04T19:06:56.759000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
    2025-03-04T19:06:56.759000Z TestFramework (ERROR): 
    
    
    stderr:
    [node 1] Cleaning up leftover process
    [node 0] Cleaning up leftover process
    
    
    
    TEST                                      | STATUS    | DURATION
    
    wallet_importdescriptors.py --descriptors | ✖ Failed  | 154 s
    
    ALL                                       | ✖ Failed  | 154 s (accumulated) 
    Runtime: 154 s
    

    </details>

    but increasing the timeout to ... (slow variant inspecting all blocks)"], timeout=100): made it pass again.

    And lastly build_dev_mode/test/functional/test_runner.py "wallet_miniscript.py --descriptors" seems to time out for an RPC call that I couldn't find the timeout value for:

    <details> <summary>Details</summary>

    2025-03-04T19:32:28.629000Z TestFramework (INFO): Generating an address for it and testing it detects funds
    2025-03-04T19:36:41.460000Z TestFramework (ERROR): JSONRPC error
    Traceback (most recent call last):
      File "/mnt/bitcoin/test/functional/test_framework/authproxy.py", line 164, in *get*response
        http_response = self.__conn.getresponse()
                        ^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3.12/http/client.py", line 1428, in getresponse
        response.begin()
      File "/usr/lib/python3.12/http/client.py", line 331, in begin
        version, status, reason = self._read_status()
                                  ^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3.12/http/client.py", line 292, in *read*status
        line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3.12/socket.py", line 720, in readinto
        return self._sock.recv_into(b)
               ^^^^^^^^^^^^^^^^^^^^^^^
    TimeoutError: timed out
    During handling of the above exception, another exception occurred:
    Traceback (most recent call last):
      File "/mnt/bitcoin/test/functional/test_framework/test_framework.py", line 135, in main
        self.run_test()
      File "/mnt/bitcoin/build_dev_mode/test/functional/wallet_miniscript.py", line 386, in run_test
        self.signing_test(desc, None, None, 1, 3, None)
      File "/mnt/bitcoin/build_dev_mode/test/functional/wallet_miniscript.py", line 277, in signing_test
        utxo = self.ms_sig_wallet.listunspent(addresses=[addr])[0]
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/mnt/bitcoin/test/functional/test_framework/coverage.py", line 50, in **call**
        return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/mnt/bitcoin/test/functional/test_framework/authproxy.py", line 127, in **call**
        response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/mnt/bitcoin/test/functional/test_framework/authproxy.py", line 106, in _request
        return self._get_response()
               ^^^^^^^^^^^^^^^^^^^^
      File "/mnt/bitcoin/test/functional/test_framework/authproxy.py", line 166, in *get*response
        raise JSONRPCException({
    test_framework.authproxy.JSONRPCException: 'listunspent' RPC took longer than 150.000000 seconds. Consider using larger timeout for calls that take longer to return. (-344)
    2025-03-04T19:36:41.531000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
    2025-03-04T19:36:41.531000Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner_₿_🏃_20250304_193008/wallet_miniscript_0
    2025-03-04T19:36:41.531000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner_₿_🏃_20250304_193008/wallet_miniscript_0/test_framework.log
    2025-03-04T19:36:41.532000Z TestFramework (ERROR): 
    2025-03-04T19:36:41.532000Z TestFramework (ERROR): Hint: Call /mnt/bitcoin/test/functional/combine_logs.py '/tmp/test_runner_₿_🏃_20250304_193008/wallet_miniscript_0' to consolidate all logs
    2025-03-04T19:36:41.533000Z TestFramework (ERROR): 
    2025-03-04T19:36:41.533000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
    2025-03-04T19:36:41.533000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
    2025-03-04T19:36:41.533000Z TestFramework (ERROR): 
    stderr:
    [node 0] Cleaning up leftover process
    TEST                               | STATUS    | DURATION
    wallet_miniscript.py --descriptors | ✖ Failed  | 393 s
    ALL                                | ✖ Failed  | 393 s (accumulated) 
    Runtime: 393 s
    

    </details>

  8. maflcko commented at 9:12 AM on May 6, 2025: member

    I couldn't find the timeout value for:

    The test framework has a timeout factor. You can simply increase it to avoid having to manually adjust each timeout. See ./bld-cmake/test/functional/test_runner.py --help | grep factor

  9. maflcko commented at 9:17 AM on May 6, 2025: member

    the interface_bitcoin_cli tests are likely also related to the IPv6 big-endian failures:

    What are the exact steps to reproduce? Ideally, starting from a fresh install? I guess it happens on macOS and on the Hetzner box equally?

  10. maflcko commented at 2:48 PM on June 4, 2025: member

    the interface_bitcoin_cli tests are likely also related to the IPv6 big-endian failures:

    What are the exact steps to reproduce? Ideally, starting from a fresh install? I guess it happens on macOS and on the Hetzner box equally?

    cc @l0rinc

  11. l0rinc commented at 11:58 AM on June 12, 2025: contributor

    I reran to verify (only on Mac, my Hetzner boxes are busy):

    docker run --platform linux/s390x -it ubuntu:latest /bin/bash
    

    and inside I did something like:

    export DEBIAN_FRONTEND=noninteractive && apt update && apt install -y git build-essential cmake ccache pkg-config libevent-dev libboost-dev libzmq3-dev systemtap-sdt-dev qtbase5-dev qttools5-dev qttools5-dev-tools libqrencode-dev libsqlite3-dev python3 && \
    cd /mnt && git clone --depth=1 https://github.com/bitcoin/bitcoin.git && cd bitcoin && \
    cmake -B build && cmake --build build -j$(nproc) && \
    ./build/test/functional/interface_bitcoin_cli.py
    

    which fails with:

    2025-06-12T11:55:02.197829Z TestFramework (INFO): PRNG seed is: 4129686365544516907
    2025-06-12T11:55:02.203966Z TestFramework (INFO): Initializing test directory /tmp/bitcoin_func_test_b8u6pbls
    2025-06-12T11:55:02.987327Z TestFramework (INFO): Compare responses from getblockchaininfo RPC and `bitcoin-cli getblockchaininfo`
    2025-06-12T11:55:03.036137Z TestFramework (INFO): Test named arguments
    2025-06-12T11:55:03.164192Z TestFramework (INFO): Test that later cli named arguments values silently overwrite earlier ones
    2025-06-12T11:55:03.250554Z TestFramework (INFO): Test -stdinrpcpass option
    2025-06-12T11:55:03.605082Z TestFramework (INFO): Test -stdin and -stdinrpcpass
    2025-06-12T11:55:03.979192Z TestFramework (INFO): Test connecting to a non-existing server
    2025-06-12T11:55:04.038435Z TestFramework (INFO): Test handling of invalid ports in rpcconnect
    2025-06-12T11:55:04.175171Z TestFramework (INFO): Checking for IPv6
    2025-06-12T11:55:04.312470Z TestFramework (INFO): Test handling of invalid ports in rpcport
    2025-06-12T11:55:04.442041Z TestFramework (INFO): Test port usage preferences
    2025-06-12T11:55:04.605616Z TestFramework (ERROR): Called Process failed with 'Warning: Port specified in both -rpcconnect and -rpcport. Using -rpcport 19468
    error: timeout on transient error: Could not connect to the server ::1:19468
    
    Make sure the bitcoind server is running and that you are connecting to the correct RPC port.
    Use "bitcoin-cli -help" for more info.
    '
    Traceback (most recent call last):
      File "/mnt/bitcoin/test/functional/test_framework/test_framework.py", line 190, in main
        self.run_test()
      File "/mnt/bitcoin/./build/test/functional/interface_bitcoin_cli.py", line 150, in run_test
        assert_equal(BLOCKS, self.nodes[0].cli("-rpcconnect=[::1]:18999", f'-rpcport={node_rpc_port}').getblockcount())
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/mnt/bitcoin/test/functional/test_framework/test_node.py", line 871, in __call__
        return self.cli.send_cli(self.command, *args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/mnt/bitcoin/test/functional/test_framework/test_node.py", line 936, in send_cli
        raise subprocess.CalledProcessError(returncode, p_args, output=cli_stderr)
    subprocess.CalledProcessError: Command '['/mnt/bitcoin/build/bin/bitcoin-cli', '-nonamed', '-datadir=/tmp/bitcoin_func_test_b8u6pbls/node0', '-rpcconnect=[::1]:18999', '-rpcport=19468', 'getblockcount']' returned non-zero exit status 1.
    2025-06-12T11:55:04.668694Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
    2025-06-12T11:55:04.669258Z TestFramework (WARNING): Not cleaning up dir /tmp/bitcoin_func_test_b8u6pbls
    2025-06-12T11:55:04.669534Z TestFramework (ERROR): Test failed. Test logging available at /tmp/bitcoin_func_test_b8u6pbls/test_framework.log
    2025-06-12T11:55:04.670146Z TestFramework (ERROR): 
    2025-06-12T11:55:04.670967Z TestFramework (ERROR): Hint: Call /mnt/bitcoin/test/functional/combine_logs.py '/tmp/bitcoin_func_test_b8u6pbls' to consolidate all logs
    2025-06-12T11:55:04.671213Z TestFramework (ERROR): 
    2025-06-12T11:55:04.671425Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
    2025-06-12T11:55:04.671722Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
    2025-06-12T11:55:04.671943Z TestFramework (ERROR): 
    [node 0] Cleaning up leftover process
    

    edit:

     ./build/test/functional/test_runner.py -j$(nproc)
    

    produces:

    ...
    wallet_txn_doublespend.py                              | ✓ Passed  | 6 s                                                                                                                          
    wallet_txn_doublespend.py --mineblock                  | ✓ Passed  | 7 s                                                                                                                          
    feature_bind_port_discover.py                          | ○ Skipped | 1 s                                                                                                                          
    feature_bind_port_externalip.py                        | ○ Skipped | 1 s
    feature_unsupported_utxo_db.py                         | ○ Skipped | 1 s
    interface_usdt_coinselection.py                        | ○ Skipped | 1 s
    interface_usdt_mempool.py                              | ○ Skipped | 1 s
    interface_usdt_net.py                                  | ○ Skipped | 1 s
    interface_usdt_utxocache.py                            | ○ Skipped | 1 s
    interface_usdt_validation.py                           | ○ Skipped | 1 s
    interface_zmq.py                                       | ○ Skipped | 1 s
    mempool_compatibility.py                               | ○ Skipped | 1 s
    tool_bitcoin_chainstate.py                             | ○ Skipped | 1 s
    wallet_backwards_compatibility.py                      | ○ Skipped | 1 s
    wallet_migration.py                                    | ○ Skipped | 1 s
    feature_bind_extra.py                                  | ✖ Failed  | 2 s
    interface_bitcoin_cli.py                               | ✖ Failed  | 5 s                                                                                                                          
    rpc_bind.py --ipv4                                     | ✖ Failed  | 2 s                                                                                                                          
    rpc_bind.py --ipv6                                     | ✖ Failed  | 1 s                                                                                                                          
    rpc_bind.py --nonloopback                              | ✖ Failed  | 1 s                                                                                                                          
    wallet_importdescriptors.py                            | ✖ Failed  | 85 s                                                                                                                         
    wallet_miniscript.py                                   | ✖ Failed  | 106 s                                                                                                                        
                                                                                                                                                                                                      
    ALL                                                    | ✖ Failed  | 5621 s (accumulated)  
    
  12. maflcko commented at 2:07 PM on June 12, 2025: member

    docker run --platform linux/s390x -it ubuntu:latest /bin/bash

    and inside I did something like:

    export DEBIAN_FRONTEND=noninteractive && apt update && apt install -y git build-essential cmake ccache pkg-config libevent-dev libboost-dev libzmq3-dev systemtap-sdt-dev qtbase5-dev qttools5-dev qttools5-dev-tools libqrencode-dev libsqlite3-dev python3
    cd /mnt && git clone --depth=1 https://github.com/bitcoin/bitcoin.git && cd bitcoin &&
    cmake -B build && cmake --build build -j$(nproc) &&
    ./build/test/functional/interface_bitcoin_cli.py

    which fails with:

    Thanks. I just spun up a fresh Hetzner VM and installed podman-docker. Running the exact same commands passes for me:

    ...
    2025-06-12T14:03:58.781252Z TestFramework (INFO): Tests successful
    root@27fb5a951403:/bitcoin# history 
        1  export DEBIAN_FRONTEND=noninteractive && apt update && apt install -y git build-essential cmake ccache pkg-config libevent-dev libboost-dev libzmq3-dev systemtap-sdt-dev qtbase5-dev qttools5-dev qttools5-dev-tools libqrencode-dev libsqlite3-dev python3 && git clone --depth=1 https://github.com/bitcoin/bitcoin.git && cd bitcoin &&  cmake -B build && cmake --build build -j$(nproc) && ./build/test/functional/interface_bitcoin_cli.py 
        2  history 
    
  13. l0rinc commented at 2:29 PM on June 12, 2025: contributor

    So it does look like an incomplete virtualization in Docker of the underlying network adapter - or something similar I guess. Is there anything we should do here (comment the code, open an issue anywhere)? If not, please close it.

  14. maflcko commented at 2:38 PM on June 12, 2025: member

    It would be nice to exactly find the issue and fix it, but I won't be working on this for now 😅

  15. fanquake commented at 4:02 PM on June 12, 2025: member

    Running the exact same commands passes for me:

    I ran the same commands, on a macOS machine, using podman, and it also worked fine.

  16. l0rinc commented at 3:02 PM on June 13, 2025: contributor

    I reran the whole thing, updated everything, including Docker Desktop to the latest version released a week ago, having the promising change Expanded network compatibility with IPv6 support - https://docs.docker.com/desktop/release-notes/#4420

    Unfortunately it didn't help, the build is still failing. The logs state:

    node0 2025-06-13T14:28:30.318821Z [init] [httpserver.cpp:241] [InitHTTPAllowList] [http] Allowing HTTP connections from: 127.0.0.0/8 ::1/128 node0 2025-06-13T14:28:30.320386Z [init] [httpserver.cpp:394] [HTTPBindAddresses] Binding RPC on address ::1 port 19754 node0 2025-06-13T14:28:30.320979Z [init] [httpserver.cpp:440] [libevent_log_cb] [libevent:warning] getaddrinfo: address family for nodename not supported node0 2025-06-13T14:28:30.321081Z [init] [httpserver.cpp:409] [HTTPBindAddresses] Binding RPC on address ::1 port 19754 failed. node0 2025-06-13T14:28:30.321104Z [init] [httpserver.cpp:394] [HTTPBindAddresses] Binding RPC on address 127.0.0.1 port 19754

    Manually disabling ipv6 via have_ipv6 = False # test_ipv6_local() makes the test pass for me. @fanquake, can you please post your logs? Does it contain Skipping IPv6 tests?

  17. maflcko commented at 5:16 PM on February 27, 2026: member

    but increasing the timeout to ... (slow variant inspecting all blocks)"], timeout=100): made it pass again.

    I guess I can't help with the macOS issues, but the idea with regards to timeouts is that the test code does not need to be modified when run in a vm/emulator/sanitizer. Only the --timeout-factor would need to be increased (maybe to 10 or so).


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: 2026-04-16 06:13 UTC

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