The wallet_multiwallet --usecli test fails consistently with TSAN and Clang 14.
It appears that the way the stack is stored prevents the suppression from triggering.
This diff uses another suppression filter which has a larger scope and faster lookup for excluding the issues from the lib.
Details
Details
- Reviewers
sdulfari - Group Reviewers
Restricted Project - Commits
- rABCca16d4e0b05e: Fix tsan suppression with Clang 14
Run the TSAN build with both clang 10 and 14.
Diff Detail
Diff Detail
- Repository
- rABC Bitcoin ABC
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
Build Bitcoin ABC Diffs / Diff Testing (build-tsan) failed.
Failed tests logs:
====== Bitcoin ABC functional tests: abc_p2p_compactproofs.py ====== ------- Stdout: ------- 2022-07-20T15:40:25.607000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-tsan/test/tmp/test_runner_₿₵_ _20220720_153922/abc_p2p_compactproofs_11 2022-07-20T15:40:27.976000Z TestFramework (INFO): Check we send a getavaproofs message to our avalanche outbound peers 2022-07-20T15:40:30.141000Z TestFramework (INFO): Check we send periodic getavaproofs message to some of our peers 2022-07-20T15:40:31.337000Z TestFramework (INFO): After the first avaproofs has been received, all the peers are requested periodically 2022-07-20T15:40:38.003000Z TestFramework (INFO): Check we send a getavaproofs message to our manually connected peers that support avalanche 2022-07-20T15:40:39.298000Z TestFramework (INFO): Check the node responds to getavaproofs messages 2022-07-20T15:40:53.555000Z TestFramework (INFO): Check the node requests the missing proofs after receiving an avaproofs message 2022-07-20T15:41:02.808000Z TestFramework (INFO): The node ignores unsollicited avaproofs 2022-07-20T15:41:02.965000Z TestFramework (INFO): Check no proof is requested if there is no shortid 2022-07-20T15:41:03.240000Z TestFramework (INFO): Check the node requests all the proofs if it known none 2022-07-20T15:41:03.414000Z TestFramework (INFO): Check the node requests only the missing proofs 2022-07-20T15:41:03.728000Z TestFramework (INFO): Check the node don't request prefilled proofs 2022-07-20T15:41:04.005000Z TestFramework (INFO): Check the node requests no proof if it knows all of them 2022-07-20T15:41:04.367000Z TestFramework (INFO): Check out of bounds index 2022-07-20T15:41:04.671000Z TestFramework (INFO): An invalid prefilled proof will trigger a ban 2022-07-20T15:41:05.045000Z TestFramework (INFO): Check the node respond to missing proofs requests 2022-07-20T15:41:13.238000Z TestFramework (INFO): Unsollicited requests are ignored 2022-07-20T15:41:13.444000Z TestFramework (INFO): Sending an empty request has no effect 2022-07-20T15:41:13.494000Z TestFramework (INFO): Check the requested proofs are sent by the node 2022-07-20T15:41:14.948000Z TestFramework (INFO): Check the node will not send the proofs if not requested before the timeout elapsed 2022-07-20T15:41:15.659000Z TestFramework (INFO): Check the node get compact proofs upon avalanche outbound discovery 2022-07-20T15:41:31.443000Z TestFramework (INFO): Check the node don't request compact proofs during IBD 2022-07-20T15:41:39.058000Z TestFramework (INFO): Check we also request the inbounds until the quorum is established 2022-07-20T15:42:50.018000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: '''' self.wait_until(lambda: count_getavaproofs( [inbound, outbound]) > current_total) ''' 2022-07-20T15:42:50.018000Z TestFramework (ERROR): Assertion failed Traceback (most recent call last): File "/work/test/functional/test_framework/test_framework.py", line 136, in main self.run_test() File "/work/test/functional/abc_p2p_compactproofs.py", line 681, in run_test self.test_send_inbound_getavaproofs_until_quorum_is_established() File "/work/test/functional/abc_p2p_compactproofs.py", line 663, in test_send_inbound_getavaproofs_until_quorum_is_established self.wait_until(lambda: count_getavaproofs( File "/work/test/functional/test_framework/test_framework.py", line 677, in wait_until timeout_factor=self.options.timeout_factor) File "/work/test/functional/test_framework/util.py", line 284, in wait_until_helper "Predicate {} not true after {} seconds".format(predicate_source, timeout)) AssertionError: Predicate '''' self.wait_until(lambda: count_getavaproofs( [inbound, outbound]) > current_total) ''' not true after 60.0 seconds 2022-07-20T15:42:50.069000Z TestFramework (INFO): Stopping nodes 2022-07-20T15:42:50.322000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-tsan/test/tmp/test_runner_₿₵_ _20220720_153922/abc_p2p_compactproofs_11 2022-07-20T15:42:50.322000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-tsan/test/tmp/test_runner_₿₵_ _20220720_153922/abc_p2p_compactproofs_11/test_framework.log 2022-07-20T15:42:50.322000Z TestFramework (ERROR): 2022-07-20T15:42:50.322000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-tsan/test/tmp/test_runner_₿₵_ _20220720_153922/abc_p2p_compactproofs_11' to consolidate all logs 2022-07-20T15:42:50.322000Z TestFramework (ERROR): 2022-07-20T15:42:50.322000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 2022-07-20T15:42:50.323000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues 2022-07-20T15:42:50.323000Z TestFramework (ERROR): ====== Bitcoin ABC functional tests: abc_p2p_compactproofs.py --nolegacyavaproof ====== ------- Stdout: ------- 2022-07-20T15:42:00.546000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-tsan/test/tmp/test_runner_₿₵_ _20220720_153922/abc_p2p_compactproofs_13 2022-07-20T15:42:08.655000Z TestFramework (INFO): Check we send a getavaproofs message to our avalanche outbound peers 2022-07-20T15:42:10.703000Z TestFramework (INFO): Check we send periodic getavaproofs message to some of our peers 2022-07-20T15:43:10.887000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: '''' self.wait_until(lambda: count_outbounds_getavaproofs() == outbounds_getavaproofs + 3) ''' 2022-07-20T15:43:10.887000Z TestFramework (ERROR): Assertion failed Traceback (most recent call last): File "/work/test/functional/test_framework/test_framework.py", line 136, in main self.run_test() File "/work/test/functional/abc_p2p_compactproofs.py", line 674, in run_test self.test_send_outbound_getavaproofs() File "/work/test/functional/abc_p2p_compactproofs.py", line 142, in test_send_outbound_getavaproofs self.wait_until(lambda: count_outbounds_getavaproofs() File "/work/test/functional/test_framework/test_framework.py", line 677, in wait_until timeout_factor=self.options.timeout_factor) File "/work/test/functional/test_framework/util.py", line 284, in wait_until_helper "Predicate {} not true after {} seconds".format(predicate_source, timeout)) AssertionError: Predicate '''' self.wait_until(lambda: count_outbounds_getavaproofs() == outbounds_getavaproofs + 3) ''' not true after 60.0 seconds 2022-07-20T15:43:10.937000Z TestFramework (INFO): Stopping nodes 2022-07-20T15:43:11.239000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-tsan/test/tmp/test_runner_₿₵_ _20220720_153922/abc_p2p_compactproofs_13 2022-07-20T15:43:11.239000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-tsan/test/tmp/test_runner_₿₵_ _20220720_153922/abc_p2p_compactproofs_13/test_framework.log 2022-07-20T15:43:11.239000Z TestFramework (ERROR): 2022-07-20T15:43:11.240000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-tsan/test/tmp/test_runner_₿₵_ _20220720_153922/abc_p2p_compactproofs_13' to consolidate all logs 2022-07-20T15:43:11.240000Z TestFramework (ERROR): 2022-07-20T15:43:11.240000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 2022-07-20T15:43:11.240000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues 2022-07-20T15:43:11.240000Z TestFramework (ERROR):
Each failure log is accessible here:
Bitcoin ABC functional tests: abc_p2p_compactproofs.py
Bitcoin ABC functional tests: abc_p2p_compactproofs.py --nolegacyavaproof
Comment Actions
Build Bitcoin ABC Diffs / Diff Testing (build-tsan) failed.
Failed tests logs:
====== Bitcoin ABC functional tests: abc_p2p_compactproofs.py ====== ------- Stdout: ------- 2022-07-20T16:46:42.985000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-tsan/test/tmp/test_runner_₿₵_ _20220720_164530/abc_p2p_compactproofs_11 2022-07-20T16:46:52.726000Z TestFramework (INFO): Check we send a getavaproofs message to our avalanche outbound peers 2022-07-20T16:46:55.355000Z TestFramework (INFO): Check we send periodic getavaproofs message to some of our peers 2022-07-20T16:46:56.674000Z TestFramework (INFO): After the first avaproofs has been received, all the peers are requested periodically 2022-07-20T16:47:03.236000Z TestFramework (INFO): Check we send a getavaproofs message to our manually connected peers that support avalanche 2022-07-20T16:47:04.413000Z TestFramework (INFO): Check the node responds to getavaproofs messages 2022-07-20T16:47:19.295000Z TestFramework (INFO): Check the node requests the missing proofs after receiving an avaproofs message 2022-07-20T16:47:29.541000Z TestFramework (INFO): The node ignores unsollicited avaproofs 2022-07-20T16:47:29.701000Z TestFramework (INFO): Check no proof is requested if there is no shortid 2022-07-20T16:47:29.975000Z TestFramework (INFO): Check the node requests all the proofs if it known none 2022-07-20T16:47:30.150000Z TestFramework (INFO): Check the node requests only the missing proofs 2022-07-20T16:47:30.461000Z TestFramework (INFO): Check the node don't request prefilled proofs 2022-07-20T16:47:30.745000Z TestFramework (INFO): Check the node requests no proof if it knows all of them 2022-07-20T16:47:31.057000Z TestFramework (INFO): Check out of bounds index 2022-07-20T16:47:31.383000Z TestFramework (INFO): An invalid prefilled proof will trigger a ban 2022-07-20T16:47:31.793000Z TestFramework (INFO): Check the node respond to missing proofs requests 2022-07-20T16:47:40.445000Z TestFramework (INFO): Unsollicited requests are ignored 2022-07-20T16:47:40.462000Z TestFramework (INFO): Sending an empty request has no effect 2022-07-20T16:47:40.463000Z TestFramework (INFO): Check the requested proofs are sent by the node 2022-07-20T16:47:41.831000Z TestFramework (INFO): Check the node will not send the proofs if not requested before the timeout elapsed 2022-07-20T16:47:42.540000Z TestFramework (INFO): Check the node get compact proofs upon avalanche outbound discovery 2022-07-20T16:47:59.507000Z TestFramework (INFO): Check the node don't request compact proofs during IBD 2022-07-20T16:48:07.720000Z TestFramework (INFO): Check we also request the inbounds until the quorum is established 2022-07-20T16:49:17.468000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: '''' self.wait_until(lambda: count_getavaproofs( [inbound, outbound]) > current_total) ''' 2022-07-20T16:49:17.468000Z TestFramework (ERROR): Assertion failed Traceback (most recent call last): File "/work/test/functional/test_framework/test_framework.py", line 136, in main self.run_test() File "/work/test/functional/abc_p2p_compactproofs.py", line 681, in run_test self.test_send_inbound_getavaproofs_until_quorum_is_established() File "/work/test/functional/abc_p2p_compactproofs.py", line 663, in test_send_inbound_getavaproofs_until_quorum_is_established self.wait_until(lambda: count_getavaproofs( File "/work/test/functional/test_framework/test_framework.py", line 677, in wait_until timeout_factor=self.options.timeout_factor) File "/work/test/functional/test_framework/util.py", line 284, in wait_until_helper "Predicate {} not true after {} seconds".format(predicate_source, timeout)) AssertionError: Predicate '''' self.wait_until(lambda: count_getavaproofs( [inbound, outbound]) > current_total) ''' not true after 60.0 seconds 2022-07-20T16:49:17.519000Z TestFramework (INFO): Stopping nodes 2022-07-20T16:49:17.872000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-tsan/test/tmp/test_runner_₿₵_ _20220720_164530/abc_p2p_compactproofs_11 2022-07-20T16:49:17.872000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-tsan/test/tmp/test_runner_₿₵_ _20220720_164530/abc_p2p_compactproofs_11/test_framework.log 2022-07-20T16:49:17.872000Z TestFramework (ERROR): 2022-07-20T16:49:17.872000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-tsan/test/tmp/test_runner_₿₵_ _20220720_164530/abc_p2p_compactproofs_11' to consolidate all logs 2022-07-20T16:49:17.872000Z TestFramework (ERROR): 2022-07-20T16:49:17.872000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 2022-07-20T16:49:17.873000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues 2022-07-20T16:49:17.873000Z TestFramework (ERROR):
Each failure log is accessible here:
Bitcoin ABC functional tests: abc_p2p_compactproofs.py