id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 2217,serialization 1.36.0 extended_type_info exit issue(s),timothysc@…,Robert Ramey,"I'm running some serialization unit-tests which pass with flying colors under 1.35.0 and earlier, however they seg-fault on exit when run through 1.36.0. The error appears to deal with destruction of extended_type_info_typeid objects, and *only* manifests itself when I load an archive through a shared_ptr. The load will appear to function properly, then on exit of the application, <>. This occurs even if I remove BOOST_CLASS_EXPORT && BOOST_CLASS_TYPE_INFO as the shared_ptr is to the derived element, and I'm not testing through a base. //////////////////////////// snippet: //////////////////////////// BOOST_AUTO_TEST_CASE( MyTestClass_Serialization ) { // MyTestClass is an uses intrusive serialization (You could use any object) boost::shared_ptr outtie ( new MyTestClass() ); boost::shared_ptr innie; std::ofstream os( ""MyTestClass_Serialization.xml"", std::ios_base::out ); boost::archive::xml_oarchive xmlao(os); xmlao << boost::serialization::make_nvp( ""testKey"", outtie ); os.close(); std::ifstream is( ""MyTestClass_Serialization.xml"", std::ios_base::in ); boost::archive::xml_iarchive xmlai( is ); xmlai >>boost::serialization::make_nvp( ""testKey"", innie ); is.close(); BOOST_CHECK_NO_THROW(); } Ran on Ubuntu(Linux) 8.04 using gcc 4.2.3 //////////////////////////// gdb output: //////////////////////////// *** No errors detected [New Thread 0xb73e26c0 (LWP 4715)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb73e26c0 (LWP 4715)] 0xb76bb56b in std::_Rb_tree_rebalance_for_erase () from /usr/lib/libstdc++.so.6 (gdb) bt #0 0xb76bb56b in std::_Rb_tree_rebalance_for_erase () from /usr/lib/libstdc++.so.6 #1 0xb7a38221 in std::_Rb_tree, boost::serialization::detail::type_compare, std::allocator >::erase (this=0xb7a93c94, __position={_M_node = 0x810a3f8}) at /usr/include/c++/4.2/bits/stl_tree.h:1261 #2 0xb7a38270 in std::multiset >::erase (this=0xb7a93c94, __position={_M_node = 0x810a3f8}) at /usr/include/c++/4.2/bits/stl_multiset.h:346 #3 0xb7a37482 in boost::serialization::detail::extended_type_info_typeid_0::type_unregister (this=0x810749c) at /opt/tomodev/env/boost/libs/serialization/src/extended_type_info_typeid.cpp:93 #4 0x080b001a in ~extended_type_info_typeid (this=0x810749c) at /opt/tomodev/env/boost/boost/serialization/extended_type_info_typeid.hpp:80 #5 0x0809ebe2 in __tcf_49 () at /opt/tomodev/env/boost/boost/serialization/singleton.hpp:104 #6 0xb74f7084 in exit () from /lib/tls/i686/cmov/libc.so.6 #7 0xb74df458 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6 #8 0x0809e691 in _start ()",Bugs,closed,Boost 1.37.0,serialization,Boost 1.36.0,Problem,fixed,extended_type_info,