Page MenuHomePhabricator

[backport#17261 8/13] HD Split: Avoid redundant upgrades
ClosedPublic

Authored by majcosta on Oct 9 2020, 15:21.

Details

Summary

This avoids repeaded upgrades when support for more multiple keyman references
is added in the next commit:
https://github.com/bitcoin/bitcoin/pull/16341#discussion_r322370108

https://github.com/bitcoin/bitcoin/pull/17261/commits/415afcccd3e5583defdb76e3a280f48e98983301

Depends on D7854

Partial backport of Core PR17261

Test Plan
ninja all check check-functional

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

majcosta requested review of this revision.Oct 9 2020, 15:21

Snippet of first build failure:

[309/485] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[310/485] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[311/485] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[312/485] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[313/485] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[314/485] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[315/485] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[316/485] Linking C static library src/secp256k1/libsecp256k1.a
[317/485] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[318/485] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[319/485] Linking C executable src/secp256k1/ecmult-bench
[320/485] Linking CXX static library src/libscript.a
[321/485] Linking C executable src/secp256k1/internal-bench
[322/485] Linking C executable src/secp256k1/sign-bench
[323/485] Linking C executable src/secp256k1/recover-bench
[324/485] Linking C executable src/secp256k1/verify-bench
[325/485] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[326/485] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[327/485] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[328/485] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[329/485] Building CXX object src/CMakeFiles/server.dir/rpc/abc.cpp.o
[330/485] Building CXX object src/CMakeFiles/server.dir/wallet/init.cpp.o
[331/485] Building CXX object src/CMakeFiles/server.dir/rpc/misc.cpp.o
[332/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[333/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[334/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[335/485] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[336/485] Building CXX object src/CMakeFiles/server.dir/rpc/avalanche.cpp.o
[337/485] Building CXX object src/CMakeFiles/server.dir/rpc/server.cpp.o
[338/485] Building CXX object src/CMakeFiles/server.dir/rpc/net.cpp.o
[339/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[340/485] Building CXX object src/CMakeFiles/server.dir/rpc/mining.cpp.o
[341/485] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[342/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[343/485] Building CXX object src/seeder/CMakeFiles/seeder.dir/bitcoin.cpp.o
[344/485] Building CXX object src/seeder/CMakeFiles/seeder.dir/db.cpp.o
[345/485] Building CXX object src/seeder/CMakeFiles/seeder.dir/dns.cpp.o
[346/485] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[347/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[348/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/psbtwallet.cpp.o
[349/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[350/485] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[351/485] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[352/485] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[353/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[354/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[355/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[356/485] Building CXX object src/CMakeFiles/server.dir/init.cpp.o
[357/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[358/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[359/485] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

Snippet of first build failure:

[290/434] Building CXX object src/CMakeFiles/server.dir/pow/pow.cpp.o
[291/434] Building CXX object src/CMakeFiles/server.dir/pow/aserti32d.cpp.o
[292/434] Building CXX object src/CMakeFiles/server.dir/rpc/command.cpp.o
[293/434] Building CXX object src/CMakeFiles/server.dir/rest.cpp.o
[294/434] Building CXX object src/CMakeFiles/server.dir/script/scriptcache.cpp.o
[295/434] Building CXX object src/CMakeFiles/server.dir/script/sigcache.cpp.o
[296/434] Building CXX object src/CMakeFiles/server.dir/shutdown.cpp.o
[297/434] Building CXX object src/CMakeFiles/server.dir/timedata.cpp.o
[298/434] Building CXX object src/CMakeFiles/server.dir/torcontrol.cpp.o
[299/434] Building CXX object src/CMakeFiles/server.dir/txdb.cpp.o
[300/434] Building CXX object src/CMakeFiles/server.dir/txmempool.cpp.o
[301/434] Building CXX object src/CMakeFiles/server.dir/ui_interface.cpp.o
[302/434] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
[303/434] Building CXX object src/CMakeFiles/server.dir/validationinterface.cpp.o
[304/434] Building CXX object src/CMakeFiles/server.dir/versionbits.cpp.o
[305/434] Building CXX object src/CMakeFiles/server.dir/dummywallet.cpp.o
[306/434] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[307/434] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[308/434] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[309/434] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[310/434] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[311/434] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[312/434] Linking C static library src/secp256k1/libsecp256k1.a
[313/434] Linking C executable src/secp256k1/ecmult-bench
[314/434] Linking C executable src/secp256k1/internal-bench
[315/434] Linking C executable src/secp256k1/sign-bench
[316/434] Linking C executable src/secp256k1/verify-bench
[317/434] Linking C executable src/secp256k1/recover-bench
[318/434] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[319/434] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[320/434] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[321/434] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[322/434] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[323/434] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[324/434] Building CXX object src/CMakeFiles/common.dir/outputtype.cpp.o
FAILED: src/CMakeFiles/common.dir/outputtype.cpp.o 
/usr/bin/ccache /usr/bin/c++  -DBOOST_AC_USE_STD_ATOMIC -DBOOST_SP_USE_STD_ATOMIC -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -I../../src/. -Isrc -I../../src/univalue/include -Isrc/crypto/.. -I../../src/secp256k1/include -isystem /usr/include/jemalloc -Werror -g -O2 -fPIC -fvisibility=hidden   -fstack-reuse=none -fstack-protector-all -Wstack-protector -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wshadow -Wredundant-decls -Wformat-security -Wno-unused-parameter -Wno-implicit-fallthrough -pthread -std=gnu++14 -MD -MT src/CMakeFiles/common.dir/outputtype.cpp.o -MF src/CMakeFiles/common.dir/outputtype.cpp.o.d -o src/CMakeFiles/common.dir/outputtype.cpp.o -c ../../src/outputtype.cpp
../../src/outputtype.cpp:17:67: error: missing braces around initializer for ‘std::__array_traits<OutputType, 1>::_Type’ {aka ‘OutputType [1]’} [-Werror=missing-braces]
 const std::array<OutputType, 1> OUTPUT_TYPES = {OutputType::LEGACY};
                                                                   ^
cc1plus: all warnings being treated as errors
[325/434] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[326/434] Building CXX object src/seeder/CMakeFiles/seeder.dir/bitcoin.cpp.o
[327/434] Building CXX object src/seeder/CMakeFiles/seeder.dir/db.cpp.o
[328/434] Building CXX object src/seeder/CMakeFiles/seeder.dir/dns.cpp.o
[329/434] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[330/434] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[331/434] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[332/434] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[333/434] Building CXX object src/CMakeFiles/server.dir/rpc/abc.cpp.o
[334/434] Building CXX object src/CMakeFiles/server.dir/rpc/misc.cpp.o
[335/434] Building CXX object src/CMakeFiles/server.dir/rpc/server.cpp.o
[336/434] Building CXX object src/CMakeFiles/server.dir/rpc/mining.cpp.o
[337/434] Building CXX object src/CMakeFiles/server.dir/rpc/avalanche.cpp.o
[338/434] Building CXX object src/CMakeFiles/server.dir/rpc/net.cpp.o
[339/434] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[340/434] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[341/434] Building CXX object src/CMakeFiles/server.dir/init.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1
This revision is now accepted and ready to land.Oct 9 2020, 21:53

Snippet of first build failure:

wallet_createwallet.py --usecli                  | ○ Skipped | 0 s
wallet_dump.py                                   | ○ Skipped | 0 s
wallet_encryption.py                             | ○ Skipped | 0 s
wallet_groups.py                                 | ○ Skipped | 0 s
wallet_hd.py                                     | ○ Skipped | 0 s
wallet_import_rescan.py                          | ○ Skipped | 0 s
wallet_import_with_label.py                      | ○ Skipped | 0 s
wallet_importmulti.py                            | ○ Skipped | 0 s
wallet_importprunedfunds.py                      | ○ Skipped | 0 s
wallet_keypool.py                                | ○ Skipped | 0 s
wallet_keypool_topup.py                          | ○ Skipped | 0 s
wallet_labels.py                                 | ○ Skipped | 0 s
wallet_listreceivedby.py                         | ○ Skipped | 0 s
wallet_listsinceblock.py                         | ○ Skipped | 0 s
wallet_listtransactions.py                       | ○ Skipped | 0 s
wallet_multiwallet.py                            | ○ Skipped | 0 s
wallet_multiwallet.py --usecli                   | ○ Skipped | 0 s
wallet_reorgsrestore.py                          | ○ Skipped | 0 s
wallet_resendwallettransactions.py               | ○ Skipped | 0 s
wallet_txn_clone.py                              | ○ Skipped | 0 s
wallet_txn_clone.py --mineblock                  | ○ Skipped | 0 s
wallet_txn_doublespend.py                        | ○ Skipped | 0 s
wallet_txn_doublespend.py --mineblock            | ○ Skipped | 0 s
wallet_watchonly.py                              | ○ Skipped | 0 s
wallet_watchonly.py --usecli                     | ○ Skipped | 0 s
wallet_zapwallettxes.py                          | ○ Skipped | 0 s
p2p_timeouts.py                                  | ✖ Failed  | 7 s

ALL                                              | ✖ Failed  | 303 s (accumulated) 
Runtime: 61 s

[151/376] Test Bitcoin RPC authentication...
...
----------------------------------------------------------------------
Ran 3 tests in 0.005s

OK
[152/376] cd /work/contrib/devtools/chainparams && /usr/bin/python3.7 ./test_make_chainparams.py
.....
----------------------------------------------------------------------
Ran 5 tests in 0.001s

OK
[161/376] Running pow test suite
PASSED: pow test suite
[167/376] Running bitcoin-qt test suite
PASSED: bitcoin-qt test suite
[169/376] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/script_tests.cpp.o
In file included from /usr/include/boost/test/unit_test.hpp:19,
                 from ../../src/test/script_tests.cpp:30:
../../src/test/script_tests.cpp: In member function ‘void script_tests::script_build::test_method()’:
../../src/test/script_tests.cpp:541:22: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without
 BOOST_AUTO_TEST_CASE(script_build) {
                      ^~~~~~~~~~~~
[375/376] Running bitcoin test suite
PASSED: bitcoin test suite
FAILED: test/CMakeFiles/check-functional 
cd /work/abc-ci-builds/build-without-wallet/test && /usr/bin/cmake -E make_directory /work/abc-ci-builds/build-without-wallet/test/junit && /usr/bin/cmake -E make_directory /work/abc-ci-builds/build-without-wallet/test/log && /usr/bin/cmake -E env /usr/bin/python3.7 ./functional/test_runner.py "--testsuitename=Bitcoin ABC functional tests" --junitoutput=/work/abc-ci-builds/build-without-wallet/test/junit/functional_tests.xml
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

Each failure log is accessible here:
Bitcoin ABC functional tests: p2p_timeouts.py

This revision was landed with ongoing or failed builds.Oct 10 2020, 19:42
This revision was automatically updated to reflect the committed changes.