[Boost-bugs] [Boost C++ Libraries] #3926: thread_specific_ptr + dlopen library causes a SIGSEGV.

Subject: [Boost-bugs] [Boost C++ Libraries] #3926: thread_specific_ptr + dlopen library causes a SIGSEGV.
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-02-12 23:05:31


#3926: thread_specific_ptr + dlopen library causes a SIGSEGV.
----------------------------+-----------------------------------------------
 Reporter: pluto@… | Owner: anthonyw
     Type: Bugs | Status: new
Milestone: Boost 1.43.0 | Component: thread
  Version: Boost 1.42.0 | Severity: Problem
 Keywords: |
----------------------------+-----------------------------------------------
 hi,

 i've discovered that using thread_specific_ptr in shared library dlopened
 from thread causes a gpf.[[BR]]
 please consider following scenario:
 [[BR]][[BR]]
 spawn thread[[BR]]
 dlopen a shared library with thread_specific_ptr[[BR]]
 dlclose the library[[BR]]
 terminate the thread[[BR]]
 [[BR]]
 observe the gpf[[BR]]
 [[BR]]
 {{{
 Program received signal SIGSEGV, Segmentation fault.
 0x00007ffff62b7400 in ?? ()
 (gdb) bt
 #0 0x00007ffff62b7400 in ?? ()
 #1 0x00007ffff7221f79 in __nptl_deallocate_tsd () at pthread_create.c:154
 #2 0x00007ffff722291b in start_thread (arg=<value optimized out>) at
 pthread_create.c:304
 #3 0x00007ffff6f9293d in clone () at
 ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
 #4 0x0000000000000000 in ?? ()
 }}}
 afaics the pthread (user provided) destructor keyed to pthread specific
 data is called on dlunloaded code.[[BR]][[BR]]
 BR,[[BR]]
 Pawel.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/3926>
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:02 UTC