stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject SIGSEGV in 22.locale.messages.mt on AIX (was: Re: AIB test results with XLC++-8.0/AIX 5.3)
Date Tue, 22 Apr 2008 20:01:56 GMT
Travis Vitek wrote:
> These tests may have binary compatibility issues...
> 
>   22.locale.codecvt.length
>   22.locale.ctype.scan
>   22.locale.num.put
> 
> I'm also concerned with this test because it does not fail in nightly
> builds... 
> 
>   22.locale.messages.mt

I've been experimenting with this test in an effort to find
under what conditions the SIGSEGV can be reliably reproduced.
It seems as though the likelihood of it running successfully
to completion increases as the number of threads decreases
below the number of processors. For example, with just two
threads running (on an 8 CPU box), the test hasn't failed
in nearly 40 executions. But with the number of threads in
excess of the number of processors I can pretty reliably
cause the test to fail with the error below:

/amd/devco/sebor/stdcxx-4.2.x/include/loc/_locale.h:364: 
__rw::__rw_get_std_facet: Assertion '0 != __pfacets' failed.

This suggests a thread safety bug in the library...

What's even more concerning than the bug itself is that we
run all our thread safety tests with the same number of
threads as there are processors on each server. If other
hardware behaves similarly to PowerPC, we might need to
bump up this number (and discover a whole bunch more
problems...)

Martin

> 
> Travis
> 
> 
> aix-5.3-vacpp-8.0         SRC: 4.2.0  4.2.0  4.2.1  4.2.1
>                           LIB: 4.2.0  4.2.1  4.2.0  4.2.1
> 0.printf                        SEGV   SEGV     A1     A1
> 0.process                       SEGV   SEGV      0      0
> 18.setjmp                        HUP    HUP     A1     A1
> 18.support.rtti                  N/A    N/A     A7     A7
> 21.cwchar                        A11    A11     A5     A5
> 21.string.assign                A360   A360    A60    A60
> 21.string.insert                A840   A840   A180   A180
> 21.string.replace              A1060  A1060   A240   A240
> 22.locale.codecvt.length           0   ABRT      0      0
> 22.locale.codecvt.out            N/A    N/A   SEGV   SEGV
> 22.locale.codecvt.stdcxx-435     N/A    N/A   ABRT   NOUT
> 22.locale.ctype.scan             HUP   ABRT      0      0
> 22.locale.messages               HUP   A106    HUP      0
> 22.locale.messages.mt           SEGV   SEGV   SEGV   SEGV
> 22.locale.money.get              A20    A20    A20    A20
> 22.locale.num.get                A96    A96    A96    A96
> 22.locale.num.put                  0    A24    A26      0
> 22.locale.num.put.stdcxx-2       N/A    N/A   ABRT   NOUT
> 22.locale.time.get               A46    A46   SEGV   SEGV
> 23.deque.special               A1536  A1536      0      0
> 23.vector.bool.stdcxx-235       ABRT   ABRT   NOUT   NOUT
> 25.heap                          A31    A31      0      0
> 25.partial.sort                A2603  A2603      0      0
> 25.random.shuffle                 A1     A1      0      0
> 26.class.gslice                 A162   A162   A162   A162
> 26.valarray.cassign                0      0   COMP   COMP
> 27.basic.ios.copyfmt.stdcxx-766  N/A    N/A   ABRT   NOUT
> 27.ostream                        A2     A2      0      0
> 8.cstdint                         A3     A3      0      0
> 


Mime
View raw message