BTW, I should add that libstdcxx as included in gcc 4.9.2 (devtoolset on
el6) doesn't have this bug, since it just wraps pthread_once. So, it's
probably not a _real_ issue since we don't use libc++ for production builds.

-Todd

On Tue, Feb 14, 2017 at 6:05 PM, Todd Lipcon <[email protected]> wrote:

> 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
>



-- 
Todd Lipcon
Software Engineer, Cloudera

Reply via email to