[ 
https://issues.apache.org/jira/browse/STDCXX-450?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Travis Vitek reassigned STDCXX-450:
-----------------------------------

    Assignee: Travis Vitek

> std::use_facet<std::num_put>() not thread safe
> ----------------------------------------------
>
>                 Key: STDCXX-450
>                 URL: https://issues.apache.org/jira/browse/STDCXX-450
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 22. Localization, Thread Safety
>    Affects Versions: 4.1.2, 4.1.3, 4.1.4
>         Environment: Linux
>            Reporter: Martin Sebor
>            Assignee: Travis Vitek
>            Priority: Blocker
>             Fix For: 4.2
>
>         Attachments: 22.locale.num.put.mt.html
>
>
> The 22.locale.num.put.mt thread safety tests aborts at runtime indicating 
> that there is a thread safety issue in the locale implementation. 
> Unfortunately, running the test through the Intel Thread Checker hasn't 
> revealed the cause of the problem since the thread checker exits prematurely, 
> most likely due to a bug in the tool itself (see below).
> $ icc --version && tcheck_cl -v && make 22.locale.num.put.mt CXXOPTS=-tcheck 
> LDOPTS=-tcheck && ./22.locale.num.put.mt --nthreads=4 --nloops=10000 || 
> tcheck_cl ./22.locale.num.put.mt --nthreads=4 --nloops=1000000
> icc (ICC) 9.1 20070320
> Copyright (C) 1985-2007 Intel Corporation.  All rights reserved.
> Intel(R) Thread Checker 3.1 command line instrumentation driver (24400)
> Copyright (c) 2007 Intel Corporation. All rights reserved.
> icc -cxxlib-nostd -g   -w1 -tcheck -I/amd/devco/sebor/stdcxx/include/ansi 
> -D_RWSTDDEBUG   -D_REENTRANT -I/amd/devco/sebor/stdcxx/include 
> -I/build/sebor/stdcxx-icc-9.1_049-15S/include 
> -I/amd/devco/sebor/stdcxx/tests/include  
> -L/build/sebor/stdcxx-icc-9.1_049-15S/rwtest -lrwtest15S -cxxlib-nostd  
> -lpthread  -L/build/sebor/stdcxx-icc-9.1_049-15S/lib -tcheck  
> /amd/devco/sebor/stdcxx/tests/localization/22.locale.num.put.mt.cpp 
> /build/sebor/stdcxx-icc-9.1_049-15S/lib/libstd15S.a 
> /build/sebor/stdcxx-icc-9.1_049-15S/rwtest/librwtest15S.a  -lstd15S 
> -lcxaguard -lsupc++ -lm -o 22.locale.num.put.mt
> icc: warning: thread checking compilation disables optimization
> # INFO (S1) (10 lines):
> # TEXT: 
> # COMPILER: Intel C++, __INTEL_COMPILER = 910, __INTEL_COMPILER_BUILD_DATE = 
> 20070320, __EDG_VERSION__ = 306
> # ENVIRONMENT: x86_64/LP64 running linux-elf 2.4.20 with glibc 2.3
> # FILE: 22.locale.num.put.mt.cpp
> # COMPILED: Jun 13 2007, 14:05:31
> # COMMENT: thread safety
> ############################################################
> # CLAUSE: lib.locale.num.put
> # NOTE (S2) (5 lines):
> # TEXT: executing "locale -a > /tmp/tmpfile-qNKfDC"
> # CLAUSE: lib.locale.num.put
> # FILE: process.cpp
> # LINE: 274
> # INFO (S1) (3 lines):
> # TEXT: testing std::num_put<charT> with 4 threads, 10000 iterations each, in 
> locales { "aa_DJ" "aa_DJ.iso88591" "aa_DJ.utf8" "aa_ER" "[EMAIL PROTECTED]" 
> "aa_ER.utf8" "[EMAIL PROTECTED]" "aa_ET" "aa_ET.utf8" "af_ZA" 
> "af_ZA.iso88591" "af_ZA.utf8" "am_ET" "am_ET.utf8" "an_ES" "an_ES.iso885915" 
> "an_ES.utf8" "ar_AE" "ar_AE.iso88596" "ar_AE.utf8" "ar_BH" "ar_BH.iso88596" 
> "ar_BH.utf8" "ar_DZ" "ar_DZ.iso88596" "ar_DZ.utf8" "ar_EG" "ar_EG.iso88596" 
> "ar_EG.utf8" "ar_IN" "ar_IN.utf8" "ar_IQ" }
> # CLAUSE: lib.locale.num.put
> # INFO (S1) (3 lines):
> # TEXT: exercising std::num_put<char>
> # CLAUSE: lib.locale.num.put
> /amd/devco/sebor/stdcxx/src/locale_body.h:242: static 
> __rw::__rw_facet::_C_facet_type __rw::__rw_locale::_C_get_facet_type(const 
> __rw::__rw_facet &): Assertion '0 != __facet._C_pid' failed.
> ./22.locale.num.put.mt[0x40eb27]
> ./22.locale.num.put.mt[0x40ebff]
> ./22.locale.num.put.mt[0x413760]
> ./22.locale.num.put.mt[0x419cbd]
> ./22.locale.num.put.mt[0x41d0e7]
> ./22.locale.num.put.mt[0x41d263]
> ./22.locale.num.put.mt[0x440ea3]
> ./22.locale.num.put.mt[0x440f51]
> ./22.locale.num.put.mt[0x4088d7]
> ./22.locale.num.put.mt[0x408cad]
> ./22.locale.num.put.mt[0x40d787]
> /lib64/tls/libpthread.so.0[0x353a00610a]
> /lib64/tls/libc.so.6(__clone+0x73)[0x35395c68c3]
> Aborted
> Intel(R) Thread Checker 3.1 command line instrumentation driver (24400)
> Copyright (c) 2007 Intel Corporation. All rights reserved.
> Building project
> Instrumenting
>  11% 22.locale.num.put.mt ( All Functions 
> ):.......................................................
> .
>  33% libc-2.3.4.so   ( Minimal ):....
>  44% libcxaguard.so.5 ( Minimal ):..
>  55% libdl-2.3.4.so  ( Minimal ):..
>  66% libgcc_s-3.4.6-20060404.so.1 ( Minimal ):..
>  77% libimf.so       ( Minimal ):..
>  88% libm-2.3.4.so   ( Minimal ):..
> 100% libpthread-2.3.4.so ( Minimal ):..
> Running:  /build/sebor/stdcxx-icc-9.1_049-15S/tests/22.locale.num.put.mt 
> --nthreads=4 --nloops=1000000
> # INFO (S1) (10 lines):
> # TEXT: 
> # COMPILER: Intel C++, __INTEL_COMPILER = 910, __INTEL_COMPILER_BUILD_DATE = 
> 20070320, __EDG_VERSION__ = 306
> # ENVIRONMENT: x86_64/LP64 running linux-elf 2.4.20 with glibc 2.3
> # FILE: 22.locale.num.put.mt.cpp
> # COMPILED: Jun 13 2007, 14:05:31
> # COMMENT: thread safety
> ############################################################
> # CLAUSE: lib.locale.num.put
> # NOTE (S2) (5 lines):
> # TEXT: executing "locale -a > /tmp/tmpfile-j8uQY8"
> # CLAUSE: lib.locale.num.put
> # FILE: process.cpp
> # LINE: 274
> # INFO (S1) (3 lines):
> # TEXT: testing std::num_put<charT> with 4 threads, 1000000 iterations each, 
> in locales { "aa_DJ" "aa_DJ.iso88591" "aa_DJ.utf8" "aa_ER" "[EMAIL 
> PROTECTED]" "aa_ER.utf8" "[EMAIL PROTECTED]" "aa_ET" "aa_ET.utf8" "af_ZA" 
> "af_ZA.iso88591" "af_ZA.utf8" "am_ET" "am_ET.utf8" "an_ES" "an_ES.iso885915" 
> "an_ES.utf8" "ar_AE" "ar_AE.iso88596" "ar_AE.utf8" "ar_BH" "ar_BH.iso88596" 
> "ar_BH.utf8" "ar_DZ" "ar_DZ.iso88596" "ar_DZ.utf8" "ar_EG" "ar_EG.iso88596" 
> "ar_EG.utf8" "ar_IN" "ar_IN.utf8" "ar_IQ" }
> # CLAUSE: lib.locale.num.put
> # INFO (S1) (3 lines):
> # TEXT: exercising std::num_put<char>
> # CLAUSE: lib.locale.num.put
> Application finished
> _______________________________________________________________________________
> |ID |Short        |Severity  |Coun|Context[B|Descript|1st Access[|2nd         
> |
> |   |Description  |Name      |t   |est]     |ion     |Best]      
> |Access[Best]|
> _______________________________________________________________________________

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to