Page MenuHomePhabricator

[CI] Do not enable debug for TSAN builds
ClosedPublic

Authored by jasonbcox on Jun 11 2020, 20:08.

Details

Reviewers
deadalnix
Group Reviewers
Restricted Project
Commits
rABCa0c05b6739fe: [CI] Do not enable debug for TSAN builds
Summary

Having debug enabled for TSAN builds is problematic since DEBUG_LOCKORDER is enabled,
which may conflict with TSAN's own deadlock checks. While we could disable only DEBUG_LOCKORDER,
doing this is cleaner (compare to something like D6540) and enabling debug is not required for
informative TSAN output, since -g is set either way (-g provides line numbers and file names
in failure logs).

Test Plan

Run TSAN on this diff. It still may fail due to an unrelated, outstanding issue.
https://build.bitcoinabc.org/viewLog.html?buildId=76914&buildTypeId=BitcoinABC_BitcoinAbcStaging&tab=buildLog

Diff Detail

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

Event Timeline

Snippet of first build failure:

2020-06-11T20:29:03.790000Z TestFramework (INFO): Initializing test directory /work/build/test/tmp/test_runner_₿₵_  _20200611_202549/wallet_txn_clone_331
2020-06-11T20:29:08.717000Z TestFramework (INFO): Stopping nodes
2020-06-11T20:29:10.274000Z TestFramework (INFO): Cleaning up /work/build/test/tmp/test_runner_₿₵_  _20200611_202549/wallet_txn_clone_331 on exit
2020-06-11T20:29:10.275000Z TestFramework (INFO): Tests successful
[20:30:07]i:		 [Bitcoin ABC functional tests] wallet_txn_doublespend.py
[20:30:07]i:			 [wallet_txn_doublespend.py] [Test Output]
2020-06-11T20:29:52.502000Z TestFramework (INFO): Initializing test directory /work/build/test/tmp/test_runner_₿₵_  _20200611_202549/wallet_txn_doublespend_384
2020-06-11T20:29:55.236000Z TestFramework (INFO): Stopping nodes
2020-06-11T20:29:55.591000Z TestFramework (INFO): Cleaning up /work/build/test/tmp/test_runner_₿₵_  _20200611_202549/wallet_txn_doublespend_384 on exit
2020-06-11T20:29:55.591000Z TestFramework (INFO): Tests successful
[20:30:07]i:		 [Bitcoin ABC functional tests] wallet_txn_doublespend.py --mineblock
[20:30:07]i:			 [wallet_txn_doublespend.py --mineblock] [Test Output]
2020-06-11T20:29:04.305000Z TestFramework (INFO): Initializing test directory /work/build/test/tmp/test_runner_₿₵_  _20200611_202549/wallet_txn_doublespend_332
2020-06-11T20:29:09.209000Z TestFramework (INFO): Stopping nodes
2020-06-11T20:29:10.315000Z TestFramework (INFO): Cleaning up /work/build/test/tmp/test_runner_₿₵_  _20200611_202549/wallet_txn_doublespend_332 on exit
2020-06-11T20:29:10.315000Z TestFramework (INFO): Tests successful
[20:30:07]i:		 [Bitcoin ABC functional tests] wallet_zapwallettxes.py
[20:30:07]i:			 [wallet_zapwallettxes.py] [Test Output]
2020-06-11T20:28:25.184000Z TestFramework (INFO): Initializing test directory /work/build/test/tmp/test_runner_₿₵_  _20200611_202549/wallet_zapwallettxes_313
2020-06-11T20:28:26.529000Z TestFramework (INFO): Mining blocks...
2020-06-11T20:28:34.699000Z TestFramework (INFO): Stopping nodes
2020-06-11T20:28:35.102000Z TestFramework (INFO): Cleaning up /work/build/test/tmp/test_runner_₿₵_  _20200611_202549/wallet_zapwallettxes_313 on exit
2020-06-11T20:28:35.102000Z TestFramework (INFO): Tests successful
[20:30:07]i:		 [Bitcoin ABC functional tests] abc-block-sigchecks-activation.py
[20:30:07]i:			 [abc-block-sigchecks-activation.py] [Test Output]
2020-06-11T20:27:59.688000Z TestFramework (INFO): Initializing test directory /work/build/test/tmp/test_runner_₿₵_  _20200611_202549/abc-block-sigchecks-activation_302
2020-06-11T20:28:01.088000Z TestFramework (INFO): Create some blocks with OP_1 coinbase for spending.
2020-06-11T20:28:01.194000Z TestFramework (INFO): Mature the blocks.
2020-06-11T20:28:01.456000Z TestFramework (INFO): Funding special coins that have high sigchecks
2020-06-11T20:28:04.482000Z TestFramework (INFO): Create transaction that have high sigchecks
2020-06-11T20:28:04.968000Z TestFramework (INFO): Approach to just before upgrade activation
2020-06-11T20:28:05.073000Z TestFramework (INFO): The next block will activate, but the activation block itself must follow old rules
2020-06-11T20:28:08.144000Z TestFramework (INFO): Mine the activation block itself
2020-06-11T20:28:08.647000Z TestFramework (INFO): We have activated!
2020-06-11T20:28:08.648000Z TestFramework (INFO): Try a block with a transaction going over the limit (limit: 3000)
2020-06-11T20:28:08.903000Z TestFramework (INFO): Try a block with a transaction just under the limit (limit: 3000)
2020-06-11T20:28:09.014000Z TestFramework (INFO): Try sending 10000-sigcheck blocks after activation (limit: 7999)
2020-06-11T20:28:09.421000Z TestFramework (INFO): There are too many sigchecks in mempool to mine in a single block. Make sure the node won't mine invalid blocks.
2020-06-11T20:28:09.800000Z TestFramework (INFO): Try sending 10000-sigcheck block with fresh transactions after activation (limit: 7999)
2020-06-11T20:28:13.598000Z TestFramework (INFO): Try sending 8000-sigcheck block after activation (limit: 7999)
2020-06-11T20:28:14.045000Z TestFramework (INFO): Bump the excessiveblocksize limit by 1 byte, and send another block with same txes (new sigchecks limit: 8000)
2020-06-11T20:28:14.330000Z TestFramework (INFO): Stopping nodes
[20:30:07]i:			 [abc-block-sigchecks-activation.py] [Test Error Output]
Traceback (most recent call last):
  File "/work/test/functional/abc-block-sigchecks-activation.py", line 439, in <module>
    BlockSigChecksActivationTest().main()
  File "/work/test/functional/test_framework/test_framework.py", line 208, in main
    self.stop_nodes()
  File "/work/test/functional/test_framework/test_framework.py", line 406, in stop_nodes
    node.wait_until_stopped()
  File "/work/test/functional/test_framework/test_node.py", line 354, in wait_until_stopped
    wait_until(self.is_node_stopped, timeout=timeout)
  File "/work/test/functional/test_framework/util.py", line 253, in wait_until
    if predicate():
  File "/work/test/functional/test_framework/test_node.py", line 345, in is_node_stopped
    "Node returned non-zero exit code ({}) when stopping".format(return_code))
AssertionError: [node 0] Node returned non-zero exit code (66) when stopping
[20:30:10]E:	 [Step 1/2] Failed tests detected
[20:30:11]W:	 [Step 1/2] Process exited with code 1
[20:30:11]E:	 [Step 1/2] Process exited with code 1 (Step: Command Line)

Each failure log is accessible here:
Bitcoin ABC functional tests: abc-block-sigchecks-activation.py

This revision is now accepted and ready to land.Jun 11 2020, 21:32
This revision was automatically updated to reflect the committed changes.