Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Review the CCheckQueue logic for Thread Sanitizer issues #651
Some tests are failing using the Thread Sanitizer build that point in the direction of our custom CCheck queue that is generic over signature and rangeproof checks.
There doesn't seem to have been a change to this logic since 0.14, so it's not a new issue, it's just that upstream introduced the thread sanitizer build that wasn't there before.
This seems to sometimes succeed and sometimes fail in travis. For example, running with a setting of
But running with
I've tried (unsuccessfully) to reproduce this failure on local systems (Centos 7.x, Arch, Ubuntu 16.04, Ubuntu 16.08, as well as within a docker-based gitian instance of bionic) using version 7 of the clang SDK and the following script (which I think mimics the testing done in travis with the thread sanitizer):
Examining (and instrumenting) the code identified in the thread sanitizer output reveals no obvious errors. However, it did reveal that the same blocks of memory were being repeatedly allocated/freed (albeit in proper order) over the course of the test. My suspicion is that there is something in the travis/docker environment that confuses the sanitizer.