Brad Smith <[email protected]> wrote:

> On 12/23/2020 10:35 PM, Alexey Sokolov wrote:
> >> Synopsis:  getaddrinfo() is not thread-safe in 6.8
> >> Category:  system
> >> Environment:
> >     System      : OpenBSD 6.8
> >     Details     : OpenBSD 6.8 (GENERIC.MP) #1: Tue Nov  3 09:06:04 MST 2020
> >                     
> > [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> >
> >     Architecture: OpenBSD.amd64
> >     Machine     : amd64
> >> Description:
> > Hi, getaddrinfo() crashes when multiple threads run getaddrinfo()
> > concurrently. This didn't happen in 6.7.
> > It looks like asr_ctx which is supposed to be thread-local according to
> > _asr_use_resolver(), is actually static / shared between threads.
> >> How-To-Repeat:
> > Compile this code (gcc a.c -pthread), and run. It will segfault in
> > several seconds. Happens with both gcc (4.2.1) and egcc (8.4.0).
> 
> Before going any further. Use the system compiler. That is Clang (cc).

I disagree.   As the test appears fairly idiomatic threading code, I
find it unlikely a compiler change should matter.

Reply via email to