More likely a bug introduced by recent improvements in handling automatic registering/deregistering.
 
Please make a small test case (below isn't complete) along with information about compiler, os,
etc and open up a TRAK item.
 
Robert Ramey
 
"Tim St. Clair" <timothysc@gmail.com> wrote in message news:ef85fd8f0808181251s3356849fl9288d1a9c9c0486b@mail.gmail.com...
Folks,

    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<T>.  The load will appear to function properly, then on exit of the application, <<Death>>.  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.

    My lastest guess is that I may be missing some #define BOOST_SOME_MAGIC_NEW_OPTION

//////////////////////////// pseduo code: ////////////////////////////
BOOST_AUTO_TEST_CASE( MyTestClass_Serialization )
{
    boost::shared_ptr<MyTestClass> outtie ( new MyTestClass() );
    boost::shared_ptr<MyTestClass> innie;
   
    std::ofstream os( "MyTestClass_Serialization.xml", std::ios_base::out );
    my_pack< MyTestClass >( os, outtie );
    os.close();      

    std::ifstream is( "MyTestClass_Serialization.xml", std::ios_base::in );
    my_unpack< MyTestClass >( is, innie );
    is.close();
  
    BOOST_CHECK_NO_THROW();
}

//////////////////////////// ddd 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::extended_type_info_typeid_0 const*, boost::serialization::detail::extended_type_info_typeid_0 const*, std::_Identity<boost::serialization::detail::extended_type_info_typeid_0 const*>, boost::serialization::detail::type_compare, std::allocator<boost::serialization::detail::extended_type_info_typeid_0 const*> >::erase (this=0xb7a93c94, __position={_M_node = 0x810a3f8}) at /usr/include/c++/4.2/bits/stl_tree.h:1261
#2  0xb7a38270 in std::multiset<boost::serialization::detail::extended_type_info_typeid_0 const*, boost::serialization::detail::type_compare, std::allocator<boost::serialization::detail::extended_type_info_typeid_0 const*> >::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 ()
   

Cheers,
Timothy St. Clair
[timothysc@gmail.com]


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users