[Boost-bugs] [Boost C++ Libraries] #13555: Crash when statically linked to the dynamic library when use dlopen.

Subject: [Boost-bugs] [Boost C++ Libraries] #13555: Crash when statically linked to the dynamic library when use dlopen.
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2018-05-01 15:48:05


#13555: Crash when statically linked to the dynamic library when use dlopen.
--------------------------------------+---------------------------
 Reporter: Kipa Mikhail <msnkipa@…> | Owner: Robert Ramey
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: serialization
  Version: Boost 1.66.0 | Severity: Problem
 Keywords: |
--------------------------------------+---------------------------
 Hi!

 I have shared library under Linux that is statically linked to
 boost_serialization. I load my library twice durind my application wors by
 the use dlopen/dlclose.
 At the second dlopen I have:

 #0
 boost::serialization::typeid_system::extended_type_info_typeid_0::is_less_than
 (rhs=..., this=0x1003730) at
 libs/serialization/src/extended_type_info_typeid.cpp:59
 #1 boost::serialization::typeid_system::type_compare::operator()
 (this=0x863360, rhs=0xf838f0, lhs=0x1003730) at
 libs/serialization/src/extended_type_info_typeid.cpp:41
 #2
 std::_Rb_tree<boost::serialization::typeid_system::extended_type_info_typeid_0
 const*, boost::serialization::typeid_system::extended_type_info_typeid_0
 const*,
 std::_Identity<boost::serialization::typeid_system::extended_type_info_typeid_0
 const*>, boost::serialization::typeid_system::type_compare,
 std::allocator<boost::serialization::typeid_system::extended_type_info_typeid_0
 const*> >::_M_get_insert_equal_pos (__k=<optimized out>, this=0x863360)
     at /usr/include/c++/7/bits/stl_tree.h:2069
 #3
 std::_Rb_tree<boost::serialization::typeid_system::extended_type_info_typeid_0
 const*, boost::serialization::typeid_system::extended_type_info_typeid_0
 const*,
 std::_Identity<boost::serialization::typeid_system::extended_type_info_typeid_0
 const*>, boost::serialization::typeid_system::type_compare,
 std::allocator<boost::serialization::typeid_system::extended_type_info_typeid_0
 const*>
>::_M_insert_equal<boost::serialization::typeid_system::extended_type_info_typeid_0
 const*> (
     __v=<optimized out>, this=0x863360) at
 /usr/include/c++/7/bits/stl_tree.h:2117
 #4
 std::multiset<boost::serialization::typeid_system::extended_type_info_typeid_0
 const*, boost::serialization::typeid_system::type_compare,
 std::allocator<boost::serialization::typeid_system::extended_type_info_typeid_0
 const*> >::insert (
     __x=<optimized out>, this=<optimized out>) at
 /usr/include/c++/7/bits/stl_multiset.h:498
 #5
 boost::serialization::typeid_system::extended_type_info_typeid_0::type_register
 (this=0x1003730, ti=...) at
 libs/serialization/src/extended_type_info_typeid.cpp:91
 #6 0x00007fffd6023819 in
 boost::serialization::extended_type_info_typeid<QFont>::extended_type_info_typeid
 (this=0x1003730) at
 /opt/boost/include/boost/serialization/extended_type_info_typeid.hpp:91
 #7 0x00007fffd60231a0 in
 boost::serialization::singleton<boost::serialization::extended_type_info_typeid<QFont>
>::get_instance()::singleton_wrapper::singleton_wrapper() (this=0x1003730)
     at /opt/boost/include/boost/serialization/singleton.hpp:121
 #8 0x00007fffd6023213 in
 boost::serialization::singleton<boost::serialization::extended_type_info_typeid<QFont>
>::get_instance () at
 /opt/boost/include/boost/serialization/singleton.hpp:142
 #9 0x00007fffd6022e83 in
 boost::serialization::singleton<boost::serialization::extended_type_info_typeid<QFont>
>::get_const_instance () at
 /opt/boost/include/boost/serialization/singleton.hpp:156
 #10 0x00007fffd6022aca in
 boost::archive::detail::oserializer<boost::archive::binary_oarchive,
 QFont>::oserializer (this=0x1003710) at
 /opt/boost/include/boost/archive/detail/oserializer.hpp:116
 #11 0x00007fffd6022744 in
 boost::serialization::singleton<boost::archive::detail::oserializer<boost::archive::binary_oarchive,
 QFont> >::get_instance()::singleton_wrapper::singleton_wrapper()
 (this=0x1003710)
     at /opt/boost/include/boost/serialization/singleton.hpp:121
 #12 0x00007fffd60227b7 in
 boost::serialization::singleton<boost::archive::detail::oserializer<boost::archive::binary_oarchive,
 QFont> >::get_instance () at
 /opt/boost/include/boost/serialization/singleton.hpp:142
 #13 0x00007fffd60166e9 in __static_initialization_and_destruction_0
 (__initialize_p=1, __priority=65535) at
 /opt/boost/include/boost/serialization/singleton.hpp:173
 #14 0x00007fffd60167ba in _GLOBAL__sub_I_archivebuilder.cpp(void) () at
 /home/misha/Documents/devel/svn/soac/trunk/diagnostic/dcsplugins/development/gui/qt/archivebuilder.cpp:233
 #15 0x00007ffff7de640a in call_init.part () from /lib64/ld-
 linux-x86-64.so.2
 #16 0x00007ffff7de6516 in _dl_init () from /lib64/ld-linux-x86-64.so.2
 #17 0x00007ffff7dea67f in dl_open_worker () from /lib64/ld-
 linux-x86-64.so.2
 #18 0x00007ffff4d59e5f in _dl_catch_exception () from /lib64/libc.so.6
 #19 0x00007ffff7de9f1a in _dl_open () from /lib64/ld-linux-x86-64.so.2
 #20 0x00007ffff2c8af96 in dlopen_doit () from /lib64/libdl.so.2
 #21 0x00007ffff4d59e5f in _dl_catch_exception () from /lib64/libc.so.6
 #22 0x00007ffff4d59eef in _dl_catch_error () from /lib64/libc.so.6
 #23 0x00007ffff2c8b685 in _dlerror_run () from /lib64/libdl.so.2
 #24 0x00007ffff2c8b051 in dlopen@@GLIBC_2.2.5 () from /lib64/libdl.so.2

 Qt libraries are linked dynamically to all parts of my application.

-- 
Ticket URL: <https://svn.boost.org/trac10/ticket/13555>
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 : 2018-05-01 15:52:42 UTC