Skip to content

Conversation

@coryan
Copy link
Contributor

@coryan coryan commented Aug 24, 2019

This change configures (but does not enable) the tsan (ThreadSanitizer)
and msan (MemorySanitizer) builds. The are a couple of changes in the
code:

  • tsan found a real race condition in google::cloud::promise<T>, also
    created a couple of unit tests to repro the bug with minimal overhead.
  • msan yields a false positive for one of the tests related to signal
    handlers. I chose to simply disable the test in this case.

A separate change inside Google will enable these builds.

Fixes #62


This change is Reviewable

@googlebot googlebot added the cla: yes This human has signed the Contributor License Agreement. label Aug 24, 2019
This change configures (but does not enable) the tsan (ThreadSanitizer)
and msan (MemorySanitizer) builds. The are a couple of changes in the
code:

- tsan found a real race condition in `google::cloud::promise<T>`, also
  created a couple of unit tests to repro the bug with minimal overhead.
- msan yields a false positive for one of the tests related to signal
  handlers. I chose to simply disable the test in this case.

A separate change inside Google will enable these builds.
@coryan coryan force-pushed the configure-tsan-and-msan-builds branch from 21c6f71 to cbf37c8 Compare August 26, 2019 12:51
@coryan coryan merged commit 7d68b04 into googleapis:master Aug 26, 2019
@coryan coryan deleted the configure-tsan-and-msan-builds branch August 26, 2019 13:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla: yes This human has signed the Contributor License Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Compile msan-enabled library to avoid false positives in MemorySanitizer

3 participants