Issue Details (XML | Word | Printable)

Key: STDCXX-450
Type: Bug Bug
Status: Resolved Resolved
Resolution: Cannot Reproduce
Priority: Blocker Blocker
Assignee: Travis Vitek
Reporter: Martin Sebor
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
C++ Standard Library

std::use_facet<std::num_put>() not thread safe

Created: 19/Jun/07 01:43 AM   Updated: 02/Oct/07 05:40 AM
Return to search
Component/s: 22. Localization, Thread Safety
Affects Version/s: 4.1.2, 4.1.3, 4.1.4
Fix Version/s: 4.2.0

Time Tracking:
Not Specified

File Attachments:
  Size
HTML File 22.locale.num.put.mt.html 2007-06-22 12:59 AM Martin Sebor 37 kB
Environment: Linux

Resolution Date: 01/Oct/07 11:39 PM


 Description  « Hide
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

  1. INFO (S1) (10 lines):
  2. TEXT:
  3. COMPILER: Intel C++, _INTEL_COMPILER = 910, __INTEL_COMPILER_BUILD_DATE = 20070320, __EDG_VERSION_ = 306
  4. ENVIRONMENT: x86_64/LP64 running linux-elf 2.4.20 with glibc 2.3
  5. FILE: 22.locale.num.put.mt.cpp
  6. COMPILED: Jun 13 2007, 14:05:31
  7. COMMENT: thread safety
    ############################################################
  1. CLAUSE: lib.locale.num.put
  1. NOTE (S2) (5 lines):
  2. TEXT: executing "locale -a > /tmp/tmpfile-qNKfDC"
  3. CLAUSE: lib.locale.num.put
  4. FILE: process.cpp
  5. LINE: 274
  1. INFO (S1) (3 lines):
  2. TEXT: testing std::num_put<charT> with 4 threads, 10000 iterations each, in locales { "aa_DJ" "aa_DJ.iso88591" "aa_DJ.utf8" "aa_ER" "aa_ER@saaho" "aa_ER.utf8" "aa_ER.utf8@saaho" "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" "aa_ER@saaho" "aa_ER.utf8" "aa_ER.utf8@saaho" "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" }
  3. CLAUSE: lib.locale.num.put
  1. INFO (S1) (3 lines):
  2. TEXT: exercising std::num_put<char>
  3. 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]

_______________________________________________________________________________



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
There are no subversion log entries for this issue yet.