|
From: Konstantin S. <kon...@gm...> - 2009-03-30 18:40:06
|
[changed subject] On Mon, Mar 30, 2009 at 2:10 PM, Bart Van Assche <bar...@gm...> wrote: > On Mon, Mar 30, 2009 at 4:53 PM, Konstantin Serebryany > <kon...@gm...> wrote: >>> Did you check whether DRD reports a false positive on your TLS test case ? >> >> DRD says nothing about TLS in this test (it prints lots of reports >> about _dl_lookup_symbol_x though) > > On which distro did this occur ? We have (a slightly modified) Ubuntu Hardy Heron LTS (8.04). > The following command does not > complain about _dl_lookup_symbol_x on Ubuntu 7.10 nor on openSUSE > 11.1: > > ./vg-in-place --tool=drd --check-stack-var=yes > drt/unittest/racecheck_unittest 130 using recent trunk: % ./vg-in-place --tool=drd --check-stack-var=yes ~/drt/trunk/unittest/racecheck_unittest 130 ==6335== Conflicting load by thread 1/1 at 0x0cb363a8 size 8 ==6335== at 0xC927332: _dl_lookup_symbol_x (in /usr/grte/v1/lib64/ld-2.3.6.so) ==6335== by 0xC92AB31: fixup (in /usr/grte/v1/lib64/ld-2.3.6.so) ==6335== by 0xC92A861: _dl_runtime_resolve (in /usr/grte/v1/lib64/ld-2.3.6.so) ==6335== by 0x41EB38: MyThreadArray::Start() (racecheck_unittest.cc:267) ==6335== by 0x40CB3C: test130::Run() (racecheck_unittest.cc:6059) ==6335== by 0x41F104: Test::Run() (racecheck_unittest.cc:161) ==6335== by 0x41616C: main (racecheck_unittest.cc:230) ... <more> the file default.supp does not seem to have anything relevant. In tsan I simply ignore everything inside ld-*.so. Helps with performance too. --kcc > > Bart. > |
|
From: Bart V. A. <bar...@gm...> - 2009-04-13 08:22:55
|
On Mon, Mar 30, 2009 at 8:40 PM, Konstantin Serebryany
<kon...@gm...> wrote:
> [changed subject]
>
> On Mon, Mar 30, 2009 at 2:10 PM, Bart Van Assche
> <bar...@gm...> wrote:
>> On Mon, Mar 30, 2009 at 4:53 PM, Konstantin Serebryany
>> <kon...@gm...> wrote:
>>>> Did you check whether DRD reports a false positive on your TLS test case ?
>>>
>>> DRD says nothing about TLS in this test (it prints lots of reports
>>> about _dl_lookup_symbol_x though)
>>
>> On which distro did this occur ?
>
> We have (a slightly modified) Ubuntu Hardy Heron LTS (8.04).
>
>> The following command does not
>> complain about _dl_lookup_symbol_x on Ubuntu 7.10 nor on openSUSE
>> 11.1:
>>
>> ./vg-in-place --tool=drd --check-stack-var=yes
>> drt/unittest/racecheck_unittest 130
>
> using recent trunk:
> % ./vg-in-place --tool=drd --check-stack-var=yes
> ~/drt/trunk/unittest/racecheck_unittest 130
> ==6335== Conflicting load by thread 1/1 at 0x0cb363a8 size 8
> ==6335== at 0xC927332: _dl_lookup_symbol_x (in
> /usr/grte/v1/lib64/ld-2.3.6.so)
> ==6335== by 0xC92AB31: fixup (in /usr/grte/v1/lib64/ld-2.3.6.so)
> ==6335== by 0xC92A861: _dl_runtime_resolve (in
> /usr/grte/v1/lib64/ld-2.3.6.so)
> ==6335== by 0x41EB38: MyThreadArray::Start() (racecheck_unittest.cc:267)
> ==6335== by 0x40CB3C: test130::Run() (racecheck_unittest.cc:6059)
> ==6335== by 0x41F104: Test::Run() (racecheck_unittest.cc:161)
> ==6335== by 0x41616C: main (racecheck_unittest.cc:230)
> ... <more>
>
> the file default.supp does not seem to have anything relevant.
> In tsan I simply ignore everything inside ld-*.so. Helps with performance too.
Are you sure this also occurs on a stock Ubuntu 8.04 ? I can't
reproduce the above behavior with neither the 32-bit nor the 64-bit
version of Ubuntu 8.04:
==7481== drd, a thread error detector.
==7481== Copyright (C) 2006-2009, and GNU GPL'd, by Bart Van Assche.
==7481== Using LibVEX rev 1888, a library for dynamic binary translation.
==7481== Copyright (C) 2004-2009, and GNU GPL'd, by OpenWorks LLP.
==7481== Using valgrind-3.5.0.SVN, a dynamic binary instrumentation framework.
==7481== Copyright (C) 2000-2009, and GNU GPL'd, by Julian Seward et al.
==7481== For more details, rerun with: -v
==7481==
test130: Per-thread
per_thread_global=0
==7481==
==7481== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 23 from 2)
Between the time you observed the false positive and the time I ran
the above test a DRD-specific Qt4-suppression pattern and a
glib-specific suppression pattern have been generalized, but that
shouldn't have any influence on the behavior you reported.
Bart.
|
|
From: Konstantin S. <kon...@gm...> - 2009-04-13 08:53:07
|
On Mon, Apr 13, 2009 at 12:22 PM, Bart Van Assche <bar...@gm...> wrote: > On Mon, Mar 30, 2009 at 8:40 PM, Konstantin Serebryany > <kon...@gm...> wrote: >> [changed subject] >> >> On Mon, Mar 30, 2009 at 2:10 PM, Bart Van Assche >> <bar...@gm...> wrote: >>> On Mon, Mar 30, 2009 at 4:53 PM, Konstantin Serebryany >>> <kon...@gm...> wrote: >>>>> Did you check whether DRD reports a false positive on your TLS test case ? >>>> >>>> DRD says nothing about TLS in this test (it prints lots of reports >>>> about _dl_lookup_symbol_x though) >>> >>> On which distro did this occur ? >> >> We have (a slightly modified) Ubuntu Hardy Heron LTS (8.04). >> >>> The following command does not >>> complain about _dl_lookup_symbol_x on Ubuntu 7.10 nor on openSUSE >>> 11.1: >>> >>> ./vg-in-place --tool=drd --check-stack-var=yes >>> drt/unittest/racecheck_unittest 130 >> >> using recent trunk: >> % ./vg-in-place --tool=drd --check-stack-var=yes >> ~/drt/trunk/unittest/racecheck_unittest 130 >> ==6335== Conflicting load by thread 1/1 at 0x0cb363a8 size 8 >> ==6335== at 0xC927332: _dl_lookup_symbol_x (in >> /usr/grte/v1/lib64/ld-2.3.6.so) >> ==6335== by 0xC92AB31: fixup (in /usr/grte/v1/lib64/ld-2.3.6.so) >> ==6335== by 0xC92A861: _dl_runtime_resolve (in >> /usr/grte/v1/lib64/ld-2.3.6.so) >> ==6335== by 0x41EB38: MyThreadArray::Start() (racecheck_unittest.cc:267) >> ==6335== by 0x40CB3C: test130::Run() (racecheck_unittest.cc:6059) >> ==6335== by 0x41F104: Test::Run() (racecheck_unittest.cc:161) >> ==6335== by 0x41616C: main (racecheck_unittest.cc:230) >> ... <more> >> >> the file default.supp does not seem to have anything relevant. >> In tsan I simply ignore everything inside ld-*.so. Helps with performance too. > > Are you sure this also occurs on a stock Ubuntu 8.04 ? I am not sure. :( We have our own libraries, which are not understood by default.supp. The stock Ubuntu 8.04 might be alright. --kcc > I can't > reproduce the above behavior with neither the 32-bit nor the 64-bit > version of Ubuntu 8.04: > > ==7481== drd, a thread error detector. > ==7481== Copyright (C) 2006-2009, and GNU GPL'd, by Bart Van Assche. > ==7481== Using LibVEX rev 1888, a library for dynamic binary translation. > ==7481== Copyright (C) 2004-2009, and GNU GPL'd, by OpenWorks LLP. > ==7481== Using valgrind-3.5.0.SVN, a dynamic binary instrumentation framework. > ==7481== Copyright (C) 2000-2009, and GNU GPL'd, by Julian Seward et al. > ==7481== For more details, rerun with: -v > ==7481== > test130: Per-thread > per_thread_global=0 > ==7481== > ==7481== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 23 from 2) > > Between the time you observed the false positive and the time I ran > the above test a DRD-specific Qt4-suppression pattern and a > glib-specific suppression pattern have been generalized, but that > shouldn't have any influence on the behavior you reported. > > Bart. > |