Details
Description
The test fails with SIGABRT in nightly builds but it look like a thread safety problem because it fails even with a single thread. Here's the output including the stack trace:
$ ./22.locale.num.get.mt --nthreads=1 2>&1 | c++filt # INFO (S1) (10 lines): # TEXT: # COMPILER: HP aCC, __HP_aCC = 61600, __EDG_VERSION__ = 308 # ENVIRONMENT: ia64 running hp-ux # FILE: 22.locale.num.get.mt.cpp # COMPILED: Apr 16 2008, 17:48:24 # COMMENT: thread safety ############################################################ # CLAUSE: lib.locale.num.get # NOTE (S2) (5 lines): # TEXT: executing "locale -a > /var/tmp/tmpfile-005971" # CLAUSE: lib.locale.num.get # FILE: process.cpp # LINE: 276 # INFO (S1) (3 lines): # TEXT: testing std::num_get<charT> with 1 thread, 100000 iterations each, in 32 locales { "C" "POSIX" "C.iso88591" "C.iso885915" "C.utf8" "univ.utf8" "ar_DZ.arabic8" "ar_DZ.utf8" "ar_SA.arabic8" "ar_SA.iso88596" "ar_SA.utf8" "bg_BG.iso88595" "bg_BG.utf8" "zh_CN.gb18030" "zh_CN.hp15CN" "zh_CN.utf8" "zh_HK.hkbig5" "zh_HK.utf8" "zh_TW.big5" "zh_TW.ccdc" "zh_TW.eucTW" "zh_TW.utf8" "cs_CZ.iso88592" "cs_CZ.utf8" "da_DK.iso88591" "da_DK.iso885915@euro" "da_DK.roman8" "da_DK.utf8" "nl_NL.iso88591" "nl_NL.iso885915@euro" "nl_NL.roman8" "nl_NL.utf8" } # CLAUSE: lib.locale.num.get # INFO (S1) (3 lines): # TEXT: exercising std::num_get<char> # CLAUSE: lib.locale.num.get /amd/devco/sebor/stdcxx/tests/localization/22.locale.num.get.mt.cpp:245: void test_get_data(const MyNumData &, const std::num_get<charT, std::istreambuf_iterator<_CharT, std::char_traits<_CharT>>> &, const std::istreambuf_iterator<_CharT, _Traits> &, const std::istreambuf_iterator<_CharT, _Traits> &, std::basic_ios<charT, Traits> &) [with charT = char, Traits = std::char_traits<char>]: Assertion '! (state & std::ios_base::failbit)' failed. (0) 0xc000000006227a90 __rw::__rw_assert_fail(char const*,char const*,int,char const*) + 0x170 at /amd/devco/sebor/stdcxx/src/assert.cpp:103 [/build/sebor/stdcxx-aCC-6.16-15D/lib/libstd15D.sl] (1) 0x4000000000031c90 void test_get_data<char,std::char_traits<char> >(MyNumData const&,std::num_get<(%0=)char,std::istreambuf_iterator<std::num_get,std::char_traits<std::num_get> > > const&,(%0=)char<std::num_get,(%1=)std::char_traits<char> > const&,std::num_get<(%0=)char,std::istreambuf_iterator<std::num_get,std::char_traits<std::num_get> > > const,std::basic_ios<std::num_get,std::istreambuf_iterator<std::num_get,std::char_traits<std::num_get> > >&) + 0x4e0 at /amd/devco/sebor/stdcxx/tests/localization/22.locale.num.get.mt.cpp:245 [./22.locale.num.get.mt] (2) 0x4000000000030690 thread_func(void*) + 0x350 at /amd/devco/sebor/stdcxx/tests/localization/22.locale.num.get.mt.cpp:354 [./22.locale.num.get.mt] (3) 0xc0000000000dfa90 __pthread_bound_body + 0x170 at /ux/core/libs/threadslibs/src/common/pthreads/pthread.c:4871 [/usr/lib/hpux64/libpthread.so.1]
Attachments
Issue Links
- is related to
-
STDCXX-846 [XLC++ 7,8,9] ABRT in 22.locale.num.get.mt
- Resolved