Re: [Boost-bugs] [Boost C++ Libraries] #3526: Data races in boost::thread detected by drd/helgrind

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #3526: Data races in boost::thread detected by drd/helgrind
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-01-19 13:14:16


#3526: Data races in boost::thread detected by drd/helgrind
--------------------------------------+-------------------------------------
  Reporter: m.strashun@… | Owner: anthonyw
      Type: Bugs | Status: closed
 Milestone: To Be Determined | Component: thread
   Version: Boost Development Trunk | Severity: Regression
Resolution: invalid | Keywords: valgrind,drd,threading
--------------------------------------+-------------------------------------

Comment (by Frederick Roth <f-roth@…>):

 I get the following output with valgrind 3.6.1 and drd:
 {{{
 [froth_at_megaera ~]$ valgrind --tool=drd ./a.out
 ==9839== drd, a thread error detector
 ==9839== Copyright (C) 2006-2010, and GNU GPL'd, by Bart Van Assche.
 ==9839== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info
 ==9839== Command: ./a.out
 ==9839==
 ==9839== Thread 3:
 ==9839== Conflicting load by thread 3 at 0x040431ec size 4
 ==9839== at 0x4035873: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839== Allocation context: BSS section of /usr/lib/libboost_thread-
 mt.so.1.47.0
 ==9839== Other segment start (thread 2)
 ==9839== at 0x400AC73: pthread_mutex_lock
 (drd_pthread_intercepts.c:587)
 ==9839== by 0x42E63C03: pthread_mutex_lock (in /lib/libc-2.14.90.so)
 ==9839== by 0x403595B: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839== Other segment end (thread 2)
 ==9839== at 0x400B508: pthread_mutex_unlock
 (drd_pthread_intercepts.c:640)
 ==9839== by 0x42E63C43: pthread_mutex_unlock (in /lib/libc-2.14.90.so)
 ==9839== by 0x40358CD: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839== Other segment start (thread 2)
 ==9839== at 0x400AC73: pthread_mutex_lock
 (drd_pthread_intercepts.c:587)
 ==9839== by 0x42E63C03: pthread_mutex_lock (in /lib/libc-2.14.90.so)
 ==9839== by 0x403589A: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839== Other segment end (thread 2)
 ==9839== at 0x400B508: pthread_mutex_unlock
 (drd_pthread_intercepts.c:640)
 ==9839== by 0x42E63C43: pthread_mutex_unlock (in /lib/libc-2.14.90.so)
 ==9839== by 0x403593B: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839==
 ==9839== Conflicting load by thread 3 at 0x040431e8 size 4
 ==9839== at 0x4035879: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839== Allocation context: BSS section of /usr/lib/libboost_thread-
 mt.so.1.47.0
 ==9839== Other segment start (thread 2)
 ==9839== at 0x400AC73: pthread_mutex_lock
 (drd_pthread_intercepts.c:587)
 ==9839== by 0x42E63C03: pthread_mutex_lock (in /lib/libc-2.14.90.so)
 ==9839== by 0x403595B: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839== Other segment end (thread 2)
 ==9839== at 0x400B508: pthread_mutex_unlock
 (drd_pthread_intercepts.c:640)
 ==9839== by 0x42E63C43: pthread_mutex_unlock (in /lib/libc-2.14.90.so)
 ==9839== by 0x40358CD: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839== Other segment start (thread 2)
 ==9839== at 0x400AC73: pthread_mutex_lock
 (drd_pthread_intercepts.c:587)
 ==9839== by 0x42E63C03: pthread_mutex_lock (in /lib/libc-2.14.90.so)
 ==9839== by 0x403589A: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839== Other segment end (thread 2)
 ==9839== at 0x400B508: pthread_mutex_unlock
 (drd_pthread_intercepts.c:640)
 ==9839== by 0x42E63C43: pthread_mutex_unlock (in /lib/libc-2.14.90.so)
 ==9839== by 0x403593B: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839==
 ==9839== Thread 1:
 ==9839== Conflicting load by thread 1 at 0x040431ec size 4
 ==9839== at 0x4035873: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42D7C6B2: (below main) (in /lib/libc-2.14.90.so)
 ==9839== Allocation context: BSS section of /usr/lib/libboost_thread-
 mt.so.1.47.0
 ==9839== Other segment start (thread 2)
 ==9839== at 0x400B508: pthread_mutex_unlock
 (drd_pthread_intercepts.c:640)
 ==9839== by 0x42E63C43: pthread_mutex_unlock (in /lib/libc-2.14.90.so)
 ==9839== by 0x403593B: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839== Other segment end (thread 2)
 ==9839== at 0x400B508: pthread_mutex_unlock
 (drd_pthread_intercepts.c:640)
 ==9839== by 0x42E63C43: pthread_mutex_unlock (in /lib/libc-2.14.90.so)
 ==9839== by 0x40358CD: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839== Other segment start (thread 2)
 ==9839== at 0x42E55828: clone (in /lib/libc-2.14.90.so)
 ==9839== Other segment end (thread 2)
 ==9839== at 0x400B508: pthread_mutex_unlock
 (drd_pthread_intercepts.c:640)
 ==9839== by 0x42E63C43: pthread_mutex_unlock (in /lib/libc-2.14.90.so)
 ==9839== by 0x403593B: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839==
 ==9839== Conflicting load by thread 1 at 0x040431e8 size 4
 ==9839== at 0x4035879: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42D7C6B2: (below main) (in /lib/libc-2.14.90.so)
 ==9839== Allocation context: BSS section of /usr/lib/libboost_thread-
 mt.so.1.47.0
 ==9839== Other segment start (thread 2)
 ==9839== at 0x400B508: pthread_mutex_unlock
 (drd_pthread_intercepts.c:640)
 ==9839== by 0x42E63C43: pthread_mutex_unlock (in /lib/libc-2.14.90.so)
 ==9839== by 0x403593B: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839== Other segment end (thread 2)
 ==9839== at 0x400B508: pthread_mutex_unlock
 (drd_pthread_intercepts.c:640)
 ==9839== by 0x42E63C43: pthread_mutex_unlock (in /lib/libc-2.14.90.so)
 ==9839== by 0x40358CD: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839== Other segment start (thread 2)
 ==9839== at 0x42E55828: clone (in /lib/libc-2.14.90.so)
 ==9839== Other segment end (thread 2)
 ==9839== at 0x400B508: pthread_mutex_unlock
 (drd_pthread_intercepts.c:640)
 ==9839== by 0x42E63C43: pthread_mutex_unlock (in /lib/libc-2.14.90.so)
 ==9839== by 0x403593B: ??? (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x4035B84:
 boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
 (in /usr/lib/libboost_thread-mt.so.1.47.0)
 ==9839== by 0x42F17CD2: start_thread (in /lib/libpthread-2.14.90.so)
 ==9839== by 0x42E5583D: clone (in /lib/libc-2.14.90.so)
 ==9839==
 ==9839==
 ==9839== For counts of detected and suppressed errors, rerun with: -v
 ==9839== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 42 from 22)
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/3526#comment:11>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:08 UTC