Return-Path: Delivered-To: apmail-stdcxx-issues-archive@locus.apache.org Received: (qmail 84757 invoked from network); 15 Feb 2008 22:18:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Feb 2008 22:18:30 -0000 Received: (qmail 18173 invoked by uid 500); 15 Feb 2008 22:18:23 -0000 Delivered-To: apmail-stdcxx-issues-archive@stdcxx.apache.org Received: (qmail 18154 invoked by uid 500); 15 Feb 2008 22:18:23 -0000 Mailing-List: contact issues-help@stdcxx.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@stdcxx.apache.org Delivered-To: mailing list issues@stdcxx.apache.org Received: (qmail 18145 invoked by uid 99); 15 Feb 2008 22:18:23 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Feb 2008 14:18:23 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED 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; Fri, 15 Feb 2008 22:17:59 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 1528A71406D for ; Fri, 15 Feb 2008 14:18:08 -0800 (PST) Message-ID: <16642199.1203113888067.JavaMail.jira@brutus> Date: Fri, 15 Feb 2008 14:18:08 -0800 (PST) From: "Travis Vitek (JIRA)" To: issues@stdcxx.apache.org Subject: [jira] Updated: (STDCXX-449) [ITC/Linux] std::string Write -> Read data-race errors 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-449?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Travis Vitek updated STDCXX-449: -------------------------------- Description: Running the Intel Thread Checker on the string thread safety tests 21.string.cons.mt and 21.string.push_back.mt produces errors suggesting potential thread safety problems even though the tests run successfully to completion. See the text output below: {noformat} $ tcheck_cl -w 200 ./21.string.cons.mt --nloops=100 --nthreads=2 Intel(R) Thread Checker 3.1 command line instrumentation driver (24400) Copyright (c) 2007 Intel Corporation. All rights reserved. Building project Running: /build/sebor/stdcxx-icc-9.1_042-15s/tests/21.string.cons.mt --nloops=100 --nthreads=2 # INFO (S1) (10 lines): # TEXT: # COMPILER: Intel C++, __INTEL_COMPILER = 910, __INTEL_COMPILER_BUILD_DATE = 20060706, __EDG_VERSION__ = 306 # ENVIRONMENT: i386 running linux-elf 2.4.20 with glibc 2.3 # FILE: 21.string.cons.mt.cpp # COMPILED: Jun 13 2007, 13:00:49 # COMMENT: thread safety ############################################################ # CLAUSE: lib.string.cons # INFO (S1) (3 lines): # TEXT: testing std::string with 2 threads, 100 iterations each # CLAUSE: lib.string.cons # INFO (S1) (3 lines): # TEXT: testing std::wstring with 2 threads, 100 iterations each # CLAUSE: lib.string.cons # +-----------------------+----------+----------+----------+ # | DIAGNOSTIC | ACTIVE | TOTAL | INACTIVE | # +-----------------------+----------+----------+----------+ # | (S1) INFO | 3 | 3 | 0% | # | (S7) ASSERTION | 0 | 16 | 100% | # +-----------------------+----------+----------+----------+ Application finished ________________________________________________________________________________________________________________________________________________________________________________________________________ |ID |Short Description |Severity |Cou|Context[Best] |Description |1st Access[Best] |2nd Access[Best] | | | |Name |nt | | | | | ________________________________________________________________________________________________________________________________________________________________________________________________________ |1 |Write -> Read |Error |128|[21.string.cons.mt,|Memory read at "_strref.h":159 conflicts with a prior memory write at [21.string.cons.mt, |[21.string.cons.mt, |"_strref.h":159 | | |data-race | | |0xadf0] |0x3475f] (flow dependence) |0x3475f] | | ________________________________________________________________________________________________________________________________________________________________________________________________________ |2 |Read -> Write |Error |5 |[21.string.cons.mt,|Memory write at [21.string.cons.mt, 0x3475f] conflicts with a prior memory read at |"_strref.h":159 |[21.string.cons.mt, | | |data-race | | |0x34755] |"_strref.h":159 (anti dependence) | |0x3475f] | ________________________________________________________________________________________________________________________________________________________________________________________________________ |3 |Thread termination |Information|1 |Whole Program 1 |Thread termination at "thread.cpp":76 - includes stack allocation of 10.004 MB and use of |"thread.cpp":76 |"thread.cpp":76 | | | | | | |4.516 KB | | | ________________________________________________________________________________________________________________________________________________________________________________________________________ |4 |Thread termination |Information|1 |Whole Program 2 |Thread termination at "thread.cpp":76 - includes stack allocation of 10.004 MB and use of |"thread.cpp":76 |"thread.cpp":76 | | | | | | |4.516 KB | | | ________________________________________________________________________________________________________________________________________________________________________________________________________ |5 |Read -> Write |Error |7 |[21.string.cons.mt,|Memory write at [21.string.cons.mt, 0x3475f] conflicts with a prior memory read at |"_strref.h":159 |[21.string.cons.mt, | | |data-race | | |0x34755] |"_strref.h":159 (anti dependence) | |0x3475f] | ________________________________________________________________________________________________________________________________________________________________________________________________________ |6 |Thread termination |Information|1 |Whole Program 3 |Thread termination at "thread.cpp":76 - includes stack allocation of 10.004 MB and use of |"thread.cpp":76 |"thread.cpp":76 | | | | | | |4.516 KB | | | ________________________________________________________________________________________________________________________________________________________________________________________________________ |7 |Thread termination |Information|1 |Whole Program 4 |Thread termination at "thread.cpp":76 - includes stack allocation of 10.004 MB and use of |"thread.cpp":76 |"thread.cpp":76 | | | | | | |4.516 KB | | | ________________________________________________________________________________________________________________________________________________________________________________________________________ |8 |Thread termination |Information|1 |Whole Program 5 |Thread termination at "21.string.cons.mt.cpp":237 - includes stack allocation of 10 MB and |"21.string.cons.mt.c|"21.string.cons.mt.cpp| | | | | | |use of 8.578 KB |pp":237 |":237 | ________________________________________________________________________________________________________________________________________________________________________________________________________ {noformat} was: Running the Intel Thread Checker on the string thread safety tests 21.string.cons.mt and 21.string.push_back.mt produces errors suggesting potential thread safety problems even though the tests run successfully to completion. See the text output below: $ tcheck_cl -w 200 ./21.string.cons.mt --nloops=100 --nthreads=2 Intel(R) Thread Checker 3.1 command line instrumentation driver (24400) Copyright (c) 2007 Intel Corporation. All rights reserved. Building project Running: /build/sebor/stdcxx-icc-9.1_042-15s/tests/21.string.cons.mt --nloops=100 --nthreads=2 # INFO (S1) (10 lines): # TEXT: # COMPILER: Intel C++, __INTEL_COMPILER = 910, __INTEL_COMPILER_BUILD_DATE = 20060706, __EDG_VERSION__ = 306 # ENVIRONMENT: i386 running linux-elf 2.4.20 with glibc 2.3 # FILE: 21.string.cons.mt.cpp # COMPILED: Jun 13 2007, 13:00:49 # COMMENT: thread safety ############################################################ # CLAUSE: lib.string.cons # INFO (S1) (3 lines): # TEXT: testing std::string with 2 threads, 100 iterations each # CLAUSE: lib.string.cons # INFO (S1) (3 lines): # TEXT: testing std::wstring with 2 threads, 100 iterations each # CLAUSE: lib.string.cons # +-----------------------+----------+----------+----------+ # | DIAGNOSTIC | ACTIVE | TOTAL | INACTIVE | # +-----------------------+----------+----------+----------+ # | (S1) INFO | 3 | 3 | 0% | # | (S7) ASSERTION | 0 | 16 | 100% | # +-----------------------+----------+----------+----------+ Application finished ________________________________________________________________________________________________________________________________________________________________________________________________________ |ID |Short Description |Severity |Cou|Context[Best] |Description |1st Access[Best] |2nd Access[Best] | | | |Name |nt | | | | | ________________________________________________________________________________________________________________________________________________________________________________________________________ |1 |Write -> Read |Error |128|[21.string.cons.mt,|Memory read at "_strref.h":159 conflicts with a prior memory write at [21.string.cons.mt, |[21.string.cons.mt, |"_strref.h":159 | | |data-race | | |0xadf0] |0x3475f] (flow dependence) |0x3475f] | | ________________________________________________________________________________________________________________________________________________________________________________________________________ |2 |Read -> Write |Error |5 |[21.string.cons.mt,|Memory write at [21.string.cons.mt, 0x3475f] conflicts with a prior memory read at |"_strref.h":159 |[21.string.cons.mt, | | |data-race | | |0x34755] |"_strref.h":159 (anti dependence) | |0x3475f] | ________________________________________________________________________________________________________________________________________________________________________________________________________ |3 |Thread termination |Information|1 |Whole Program 1 |Thread termination at "thread.cpp":76 - includes stack allocation of 10.004 MB and use of |"thread.cpp":76 |"thread.cpp":76 | | | | | | |4.516 KB | | | ________________________________________________________________________________________________________________________________________________________________________________________________________ |4 |Thread termination |Information|1 |Whole Program 2 |Thread termination at "thread.cpp":76 - includes stack allocation of 10.004 MB and use of |"thread.cpp":76 |"thread.cpp":76 | | | | | | |4.516 KB | | | ________________________________________________________________________________________________________________________________________________________________________________________________________ |5 |Read -> Write |Error |7 |[21.string.cons.mt,|Memory write at [21.string.cons.mt, 0x3475f] conflicts with a prior memory read at |"_strref.h":159 |[21.string.cons.mt, | | |data-race | | |0x34755] |"_strref.h":159 (anti dependence) | |0x3475f] | ________________________________________________________________________________________________________________________________________________________________________________________________________ |6 |Thread termination |Information|1 |Whole Program 3 |Thread termination at "thread.cpp":76 - includes stack allocation of 10.004 MB and use of |"thread.cpp":76 |"thread.cpp":76 | | | | | | |4.516 KB | | | ________________________________________________________________________________________________________________________________________________________________________________________________________ |7 |Thread termination |Information|1 |Whole Program 4 |Thread termination at "thread.cpp":76 - includes stack allocation of 10.004 MB and use of |"thread.cpp":76 |"thread.cpp":76 | | | | | | |4.516 KB | | | ________________________________________________________________________________________________________________________________________________________________________________________________________ |8 |Thread termination |Information|1 |Whole Program 5 |Thread termination at "21.string.cons.mt.cpp":237 - includes stack allocation of 10 MB and |"21.string.cons.mt.c|"21.string.cons.mt.cpp| | | | | | |use of 8.578 KB |pp":237 |":237 | ________________________________________________________________________________________________________________________________________________________________________________________________________ > [ITC/Linux] std::string Write -> Read data-race errors > ------------------------------------------------------ > > Key: STDCXX-449 > URL: https://issues.apache.org/jira/browse/STDCXX-449 > Project: C++ Standard Library > Issue Type: Bug > Components: 21. Strings > Affects Versions: 4.1.2, 4.1.3, 4.1.4, 4.2.0 > Environment: Intel Thread Checker 3.1 on Red Hat Enterprise Linux AS release 4 (Nahant Update 4) > Reporter: Martin Sebor > Priority: Minor > Fix For: 4.2.1 > > Attachments: 21.string.cons.mt.itc-report.html > > > Running the Intel Thread Checker on the string thread safety tests 21.string.cons.mt and 21.string.push_back.mt produces errors suggesting potential thread safety problems even though the tests run successfully to completion. See the text output below: > {noformat} > $ tcheck_cl -w 200 ./21.string.cons.mt --nloops=100 --nthreads=2 > Intel(R) Thread Checker 3.1 command line instrumentation driver (24400) > Copyright (c) 2007 Intel Corporation. All rights reserved. > Building project > Running: /build/sebor/stdcxx-icc-9.1_042-15s/tests/21.string.cons.mt --nloops=100 --nthreads=2 > # INFO (S1) (10 lines): > # TEXT: > # COMPILER: Intel C++, __INTEL_COMPILER = 910, __INTEL_COMPILER_BUILD_DATE = 20060706, __EDG_VERSION__ = 306 > # ENVIRONMENT: i386 running linux-elf 2.4.20 with glibc 2.3 > # FILE: 21.string.cons.mt.cpp > # COMPILED: Jun 13 2007, 13:00:49 > # COMMENT: thread safety > ############################################################ > # CLAUSE: lib.string.cons > # INFO (S1) (3 lines): > # TEXT: testing std::string with 2 threads, 100 iterations each > # CLAUSE: lib.string.cons > # INFO (S1) (3 lines): > # TEXT: testing std::wstring with 2 threads, 100 iterations each > # CLAUSE: lib.string.cons > # +-----------------------+----------+----------+----------+ > # | DIAGNOSTIC | ACTIVE | TOTAL | INACTIVE | > # +-----------------------+----------+----------+----------+ > # | (S1) INFO | 3 | 3 | 0% | > # | (S7) ASSERTION | 0 | 16 | 100% | > # +-----------------------+----------+----------+----------+ > Application finished > ________________________________________________________________________________________________________________________________________________________________________________________________________ > |ID |Short Description |Severity |Cou|Context[Best] |Description |1st Access[Best] |2nd Access[Best] | > | | |Name |nt | | | | | > ________________________________________________________________________________________________________________________________________________________________________________________________________ > |1 |Write -> Read |Error |128|[21.string.cons.mt,|Memory read at "_strref.h":159 conflicts with a prior memory write at [21.string.cons.mt, |[21.string.cons.mt, |"_strref.h":159 | > | |data-race | | |0xadf0] |0x3475f] (flow dependence) |0x3475f] | | > ________________________________________________________________________________________________________________________________________________________________________________________________________ > |2 |Read -> Write |Error |5 |[21.string.cons.mt,|Memory write at [21.string.cons.mt, 0x3475f] conflicts with a prior memory read at |"_strref.h":159 |[21.string.cons.mt, | > | |data-race | | |0x34755] |"_strref.h":159 (anti dependence) | |0x3475f] | > ________________________________________________________________________________________________________________________________________________________________________________________________________ > |3 |Thread termination |Information|1 |Whole Program 1 |Thread termination at "thread.cpp":76 - includes stack allocation of 10.004 MB and use of |"thread.cpp":76 |"thread.cpp":76 | > | | | | | |4.516 KB | | | > ________________________________________________________________________________________________________________________________________________________________________________________________________ > |4 |Thread termination |Information|1 |Whole Program 2 |Thread termination at "thread.cpp":76 - includes stack allocation of 10.004 MB and use of |"thread.cpp":76 |"thread.cpp":76 | > | | | | | |4.516 KB | | | > ________________________________________________________________________________________________________________________________________________________________________________________________________ > |5 |Read -> Write |Error |7 |[21.string.cons.mt,|Memory write at [21.string.cons.mt, 0x3475f] conflicts with a prior memory read at |"_strref.h":159 |[21.string.cons.mt, | > | |data-race | | |0x34755] |"_strref.h":159 (anti dependence) | |0x3475f] | > ________________________________________________________________________________________________________________________________________________________________________________________________________ > |6 |Thread termination |Information|1 |Whole Program 3 |Thread termination at "thread.cpp":76 - includes stack allocation of 10.004 MB and use of |"thread.cpp":76 |"thread.cpp":76 | > | | | | | |4.516 KB | | | > ________________________________________________________________________________________________________________________________________________________________________________________________________ > |7 |Thread termination |Information|1 |Whole Program 4 |Thread termination at "thread.cpp":76 - includes stack allocation of 10.004 MB and use of |"thread.cpp":76 |"thread.cpp":76 | > | | | | | |4.516 KB | | | > ________________________________________________________________________________________________________________________________________________________________________________________________________ > |8 |Thread termination |Information|1 |Whole Program 5 |Thread termination at "21.string.cons.mt.cpp":237 - includes stack allocation of 10 MB and |"21.string.cons.mt.c|"21.string.cons.mt.cpp| > | | | | | |use of 8.578 KB |pp":237 |":237 | > ________________________________________________________________________________________________________________________________________________________________________________________________________ > {noformat} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.