[Intel C++ 8.1/SuSE/AMD64] std::time_put thread safety problem --------------------------------------------------------------
Key: STDCXX-498 URL: https://issues.apache.org/jira/browse/STDCXX-498 Project: C++ Standard Library Issue Type: Bug Components: 22. Localization Affects Versions: 4.1.3 Environment: Intel C++ 8.1/SuSE/AMD64 Reporter: Martin Sebor Moved from Rogue Wave Bugzilla: http://bugzilla.cvo.roguewave.com/show_bug.cgi?id=1708 (note the name of the test is now 22.locale.time.put.mt.cpp). tests/stdlib/locale/time_put_mt seems to have a thread safety issue where a local name is corrupted and causes the test to fail. Stack Trace using icc8.1 on sunburst (amd64) > (gdb) r -O/dev/tty > Starting program: /build/sebor/icc-8.1-15S/tests/22_time_put_mt > -O/dev/tty [Thread debugging using libthread_db enabled] [New Thread > 182894218016 (LWP 27151)] ## ------------------------------- > ## TestTag = std::time_put thread safety > ## CompilerId = Intel C++, __INTEL_COMPILER = 810, > __INTEL_COMPILER_BUILD_DATE = 20050406, __EDG_VERSION__ = 303 with Rogue > Wave C++ Standard Library, _RWSTD_VER = 0x04010000 > ## MachineId = x86_64/LP64 running linux-elf 2.4.20 with glibc 2.3 > ## Remark = > > /build/sebor/dev/stdlib/tests/src/test.cpp:916: executing "locale -a > > /tmp/tmpfile-J00vyh" > Detaching after fork from child process 27156. > > ## RunTag = using the following 4 locales: "aa_DJ.iso88591", > "be_BY", "ca_ES", "da_DK" > [New Thread 1084229984 (LWP 27158)] > T0 [New Thread 1094719840 (LWP 27159)] > T1 [New Thread 1105209696 (LWP 27160)] > T2 [New Thread 1115699552 (LWP 27161)] > T3 T2 T2 T0 T1 T2 T3 T1 T2 T0 T0 T1 T1 T2 T3 T3 T1 T0 T2 T3 T0 T3 T2 > T2 > T0 T2 T0 T1 > T2 iterated 10000 times, shared counter = 30913 (min: 1, max: 2458) > [Thread 1105209696 (LWP 27160) exited] > T1 T0 T3 T1 T3 /build/sebor/dev/stdlib/src/locale_body.cpp:516: > __rw::__rw_locale::__rw_locale(const char *): Assertion '!strchr (name, > '*')' failed. > /build/sebor/icc-8.1-15S/tests/22_time_put_mt[0x420851] > > Program received signal SIGABRT, Aborted. > [Switching to Thread 1115699552 (LWP 27161)] 0x0000003c2392e4dd in > raise () from /lib64/tls/libc.so.6 > (gdb) where > #0 0x0000003c2392e4dd in raise () from /lib64/tls/libc.so.6 #1 > 0x0000003c2392fc8e in abort () from /lib64/tls/libc.so.6 #2 > 0x0000000000420930 in __rw::__rw_assert_fail ( > expr=0x4a6eb0 "!strchr (name, '*')", > file=0x4a6e7c "/build/sebor/dev/stdlib/src/locale_body.cpp", line=516, > func=0x4a6e4c "__rw::__rw_locale::__rw_locale(const char *)") > at /build/sebor/dev/stdlib/src/assert.cpp:111 > #3 0x000000000042aaa8 in _ZN4__rw11__rw_localeC9EPKc (this=0x69d430, > name=0x428014e0 "@\n\227*") > at /build/sebor/dev/stdlib/src/locale_body.cpp:516 > #4 0x000000000042aeed in __rw::__rw_locale::__rw_locale () at > _locale.h:292 > #5 0x000000000042cedd in __rw::__rw_locale::_C_manage (plocale=0x0, > locname=0x428014e0 "@\n\227*") > at /build/sebor/dev/stdlib/src/locale_body.cpp:1004 > #6 0x000000000042f154 in __rw::__rw_locale::_C_get_body (one=0x0, > other=0x0, > locname=0x63e7ef "da_DK", cat=256, pfacet=0x0) > at /build/sebor/dev/stdlib/src/locale_combine.cpp:589 > #7 0x000000000042e3bd in _ZNSt6localeC9EPKc (this=0x42801da0, > locname=0x63e7ef "da_DK") > at /build/sebor/dev/stdlib/src/locale_combine.cpp:646 > #8 0x000000000042e445 in std::locale::locale () > #9 0x0000000000403c8f in test_thread::_C_do_run (this=0x7fbfffeb50) > at /build/sebor/dev/stdlib/tests/localization/22_time_put_mt.cpp:159 > #10 0x000000000040420b in __rw_run_thread (__arg=0x7fbfffeb50) > at threadclass.h:209 > #11 0x0000003c2440613a in start_thread () from /lib64/tls/libpthread.so.0 > #12 0x0000003c239c52b3 in clone () from /lib64/tls/libc.so.6 > #13 0x0000000000000000 in ?? () -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.