Boost logo

Boost :

Subject: Re: [boost] Test failures on sanitize memory - are they caused by lightweight_test?
From: Ben Pope (benpope81_at_[hidden])
Date: 2015-03-13 04:13:40


On Friday, March 13, 2015 03:09 PM, Vicente J. Botet Escriba wrote:
> Le 12/03/15 15:48, Ben Pope a écrit :
>> On Thursday, March 12, 2015 10:45 PM, Ben Pope wrote:
>>> -fsanitize-blacklist needs passing at compile time, not link time.
>>
>> ...which is entirely my fault.
>>
> I see a lot of reports that a similar to this one yet [1].
>
> Uninitialized bytes in __interceptor_strlen at offset 88 inside
> [0x60c00000efa0, 89)
> ==7257== WARNING: MemorySanitizer: use-of-uninitialized-value
> #0 0x7f46edfb1de2 in
> std::logic_error::logic_error(std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char> > const&)
> (/usr/lib/libc++.so.1+0x8dde2)
> #1 0x7f46eeddaf64 in
> boost::future_error::future_error(boost::system::error_code)
> /home/ben/development/boost/test/build/boost_root/status/../boost/thread/futures/future_error.hpp:28:7
>
> #2 0x7f46eeddefc8 in boost::broken_promise::broken_promise()
> /home/ben/development/boost/test/build/boost_root/status/../boost/thread/futures/future_error.hpp:51:9
>
> #3 0x7f46eedcdb02 in boost::promise<int>::~promise()
> /home/ben/development/boost/test/build/boost_root/status/../boost/thread/future.hpp:1951:63
>
> #4 0x7f46eedc8120 in main
> /home/ben/development/boost/test/build/boost_root/status/../libs/thread/test/sync/futures/shared_future/move_assign_pass.cpp:39:3
>
> #5 0x7f46ecce0ec4 in __libc_start_main
> (/lib/x86_64-linux-gnu/libc.so.6+0x21ec4)
> #6 0x7f46eed7374c in _start
> (/home/ben/development/boost/test/build/results/boost/bin.v2/libs/thread/test/shared_future__move_asign_p.test/clang-linux-3.6~msan~c14_libc++/debug/address-model-64/architecture-x86/threading-multi/shared_future__move_asign_p+0x6974c)
>
>
> SUMMARY: MemorySanitizer: use-of-uninitialized-value ??:0
> std::logic_error::logic_error(std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char> > const&)
> Exiting
>
> Does it corresponds to the same false positive?
> Have you reached to mask the PO false positive?

I haven't added that to the blacklist because I need to determine the
mangled name and haven't got round to it. Also, since I'm not linking
with a sanitized libc++, I'm not sure if it's a false positive or not.

Hopefully I'll have some time this weekend to run checks on sanitized
versions of libc++, as well as blacklist some of that stuff in the
meanwhile for boost tests.

Running the sanitized tests takes 6-8 hours per branch, just core atomic
and thread takes over an hour, so it's slow going when I get it wrong ;)

Ben


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk