I noticed that a lot of our tests have gotten flaky with a TSAN race reported around SSL initialization. After digging into a bit, I found that our version of libcxx has a bug in std::once where it's using a relaxed load instead of an acquire load to check the flag of whether it has run yet.
I went to go report this upstream and discovered it's actually already fixed: https://github.com/llvm-mirror/libcxx/commit/4dbd4fcf8626453949625bf36976e668094cfbb1 I'd still like to resolve the race, though. A couple options: 1) apply this patch to our libcxx 2) use GoogleOnce instead of std::call_once 3) suppress it until we upgrade to llvm 4.0 with the newer libcxx, which should likely be released in a few weeks Any opinions? -Todd -- Todd Lipcon Software Engineer, Cloudera
