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.