You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2007/07/24 19:04:33 UTC

[jira] Created: (STDCXX-498) [Intel C++ 8.1/SuSE/AMD64] std::time_put thread safety problem

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


[jira] Updated: (STDCXX-498) [Intel C++ 8.1/SuSE/AMD64] std::time_put thread safety problem

Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-498?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Sebor updated STDCXX-498:
--------------------------------

         Severity: Runtime Error
    Fix Version/s: 4.2.1
         Assignee: Travis Vitek

Assigned to Travis and scheduled for 4.2.1.
Set Severity to Runtime Error.

> [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
>            Assignee: Travis Vitek
>             Fix For: 4.2.1
>
>
> 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.


[jira] Resolved: (STDCXX-498) [Intel C++ 8.1/SuSE/AMD64] std::time_put thread safety problem

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-498?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek resolved STDCXX-498.
---------------------------------

    Resolution: Cannot Reproduce

I haven't been able to reproduce this failure in manual builds, and I'm not seeing it in automated testing either.

> [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
>            Assignee: Travis Vitek
>             Fix For: 4.2.1
>
>
> 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.