Return-Path: Delivered-To: apmail-incubator-stdcxx-dev-archive@www.apache.org Received: (qmail 56592 invoked from network); 1 Oct 2007 15:49:25 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 1 Oct 2007 15:49:24 -0000 Received: (qmail 36023 invoked by uid 500); 1 Oct 2007 15:49:10 -0000 Delivered-To: apmail-incubator-stdcxx-dev-archive@incubator.apache.org Received: (qmail 35973 invoked by uid 500); 1 Oct 2007 15:49:10 -0000 Mailing-List: contact stdcxx-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: stdcxx-dev@incubator.apache.org Delivered-To: mailing list stdcxx-dev@incubator.apache.org Received: (qmail 35930 invoked by uid 99); 1 Oct 2007 15:49:09 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Oct 2007 08:49:09 -0700 X-ASF-Spam-Status: No, hits=-98.8 required=10.0 tests=ALL_TRUSTED,DNS_FROM_DOB,RCVD_IN_DOB X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Oct 2007 15:49:11 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id F3FAC71420F for ; Mon, 1 Oct 2007 08:48:50 -0700 (PDT) Message-ID: <10429245.1191253730996.JavaMail.jira@brutus> Date: Mon, 1 Oct 2007 08:48:50 -0700 (PDT) From: "Farid Zaripov (JIRA)" To: stdcxx-dev@incubator.apache.org Subject: [jira] Commented: (STDCXX-450) std::use_facet() not thread safe In-Reply-To: <2391072.1182217525892.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/STDCXX-450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12531542 ] Farid Zaripov commented on STDCXX-450: -------------------------------------- I can't to reproduce this bug on MSCV 8.0 and gcc 4.2.0/Linux. Perhaps the bug accidentally fixed while fixing the another mt bugs (i.e. numpunct<>). > std::use_facet() 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 > 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 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 > # 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 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" } > # CLAUSE: lib.locale.num.put > # INFO (S1) (3 lines): > # TEXT: exercising std::num_put > # 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.