data race in std::locale::classic()
-----------------------------------

                 Key: STDCXX-523
                 URL: https://issues.apache.org/jira/browse/STDCXX-523
             Project: C++ Standard Library
          Issue Type: Bug
          Components: 22. Localization
    Affects Versions: 4.1.3
            Reporter: Martin Sebor
            Assignee: Martin Sebor
            Priority: Minor
             Fix For: 4.2


Intel Thread Checker reports the following data race in std::locale::classic():

$ tcheck_cl ./22.locale.statics.mt --no-global --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-trunk-gcc-3.4.6_3-15D/tests/22.locale.statics.mt 
--no-global --nthreads=2

# INFO (S1) (10 lines):
# TEXT: 
# COMPILER: gcc 3.4.6, __VERSION__ = "3.4.6 20060404 (Red Hat 3.4.6-3)"
# ENVIRONMENT: x86_64/LP64 running linux-elf (Red Hat Enterprise Linux AS 
release 4 (Nahant Update 4)) with glibc 2.3
# FILE: 22.locale.statics.mt.cpp
# COMPILED: Aug 16 2007, 19:32:08
# COMMENT: thread safety
############################################################

# CLAUSE: lib.locale.statics

# INFO (S1) (3 lines):
# TEXT: testing std::locale::classic() with 2 threads
# CLAUSE: lib.locale.statics

# NOTE (S2) (4 lines):
# TEXT: std::locale::global(const std::locale&) test disabled
# CLAUSE: lib.locale.statics
# LINE: 129

# +-----------------------+----------+----------+----------+
# | DIAGNOSTIC            |  ACTIVE  |   TOTAL  | INACTIVE |
# +-----------------------+----------+----------+----------+
# | (S1) INFO             |        2 |        2 |       0% |
# | (S2) NOTE             |        1 |        2 |      50% |
# +-----------------------+----------+----------+----------+

Application finished

_______________________________________________________________________________
|ID|Short De|Seve|C|Context|Description                      |1st Acc|2nd Acce|
|  |scriptio|rity|o|[Best] |                                 |ess[Bes|ss[Best]|
|  |n       |Name|u|       |                                 |t]     |        |
|  |        |    |n|       |                                 |       |        |
|  |        |    |t|       |                                 |       |        |
_______________________________________________________________________________
|1 |Write ->|Erro|3|"22.loc|Memory read at                   |"_mutex|"22.loca|
|  |Read dat|r   |6|ale.sta|"22.locale.statics.mt.cpp":78    |.h":580|le.stati|
|  |a-race  |    | |tics.mt|conflicts with a prior memory    |       |cs.mt.cp|
|  |        |    | |.cpp":6|write at "_mutex.h":580 (flow    |       |p":78   |
|  |        |    | |9      |dependence)                      |       |        |
_______________________________________________________________________________
|2 |Read -> |Erro|1|[libstd|Memory write at [libstd15D.so,   |"locale|[libstd1|
|  |Write da|r   | |15D.so,|0xb646b] conflicts with a prior  |_classi|5D.so,  |
|  |ta-race |    | |0xb6460|memory read at                   |c.cpp":|0xb646b]|
|  |        |    | |]      |"locale_classic.cpp":45 (anti    |45     |        |
|  |        |    | |       |dependence)                      |       |        |
_______________________________________________________________________________
|3 |Read -> |Erro|1|[libstd|Memory write at [libstd15D.so,   |"locale|[libstd1|
|  |Write da|r   | |15D.so,|0xb646b] conflicts with a prior  |_classi|5D.so,  |
|  |ta-race |    | |0xb6460|memory read at                   |c.cpp":|0xb646b]|
|  |        |    | |]      |"locale_classic.cpp":55 (anti    |55     |        |
|  |        |    | |       |dependence)                      |       |        |
_______________________________________________________________________________
|4 |Thread t|Info|1|Whole  |Thread termination at            |"thread|"thread.|
|  |erminati|rmat| |Program|"thread.cpp":84 - includes stack |.cpp":8|cpp":84 |
|  |on      |ion | |1      |allocation of 10.004 MB and use  |4      |        |
|  |        |    | |       |of 10.203 KB                     |       |        |
_______________________________________________________________________________
|5 |Thread t|Info|1|Whole  |Thread termination at            |"thread|"thread.|
|  |erminati|rmat| |Program|"thread.cpp":84 - includes stack |.cpp":8|cpp":84 |
|  |on      |ion | |2      |allocation of 10.004 MB and use  |4      |        |
|  |        |    | |       |of 10.188 KB                     |       |        |
_______________________________________________________________________________
|6 |Thread t|Info|1|Whole  |Thread termination at            |"22.loc|"22.loca|
|  |erminati|rmat| |Program|"22.locale.statics.mt.cpp":171 - |ale.sta|le.stati|
|  |on      |ion | |3      |includes stack allocation of 10  |tics.mt|cs.mt.cp|
|  |        |    | |       |MB and use of 8.094 KB           |.cpp":1|p":171  |
|  |        |    | |       |                                 |71     |        |
_______________________________________________________________________________


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