Re: [Boost-bugs] [Boost C++ Libraries] #5789: Segmentation fault with serialization when register_type rearranged

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #5789: Segmentation fault with serialization when register_type rearranged
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-08-16 19:12:55


#5789: Segmentation fault with serialization when register_type rearranged
---------------------------------------------------+------------------------
  Reporter: Krzysztof Tomaszewski <kt@…> | Owner: ramey
      Type: Bugs | Status: new
 Milestone: To Be Determined | Component: serialization
   Version: Boost 1.47.0 | Severity: Problem
Resolution: | Keywords:
---------------------------------------------------+------------------------

Comment (by Krzysztof Tomaszewski <kt@…>):

 GDB shows following back-trace (after compiled with -g):
 {{{
 Program received signal SIGSEGV, Segmentation fault.
 0x080575d6 in boost::archive::detail::basic_iarchive::load_pointer(void*&,
 boost::archive::detail::basic_pointer_iserializer const*,
 boost::archive::detail::basic_pointer_iserializer const*
 (*)(boost::serialization::extended_type_info const&)) ()
 (gdb) bt
 #0 0x080575d6 in
 boost::archive::detail::basic_iarchive::load_pointer(void*&,
 boost::archive::detail::basic_pointer_iserializer const*,
 boost::archive::detail::basic_pointer_iserializer const*
 (*)(boost::serialization::extended_type_info const&)) ()
 #1 0x0805370c in
 boost::archive::detail::load_pointer_type<boost::archive::binary_iarchive>::invoke<A*>
 (ar=..., t=@0xbffff09c)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/iserializer.hpp:524
 #2 0x0805367d in boost::archive::load<boost::archive::binary_iarchive,
 A*> (ar=..., t=@0xbffff09c) at
 /usr/local/boost/1.47/include/boost/archive/detail/iserializer.hpp:592
 #3 0x0805361a in
 boost::archive::detail::common_iarchive<boost::archive::binary_iarchive>::load_override<A*>
 (this=0xbffff46c, t=@0xbffff09c)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/common_iarchive.hpp:66
 #4 0x080535b3 in
 boost::archive::basic_binary_iarchive<boost::archive::binary_iarchive>::load_override<A*>
 (this=0xbffff46c, t=@0xbffff09c, version=0)
     at
 /usr/local/boost/1.47/include/boost/archive/basic_binary_iarchive.hpp:70
 #5 0x080534ca in
 boost::archive::binary_iarchive_impl<boost::archive::binary_iarchive,
 char, std::char_traits<char> >::load_override<A*> (this=0xbffff46c,
 t=@0xbffff09c)
     at
 /usr/local/boost/1.47/include/boost/archive/binary_iarchive_impl.hpp:50
 #6 0x080533b2 in
 boost::archive::detail::interface_iarchive<boost::archive::binary_iarchive>::operator>><A*>
 (this=0xbffff46c, t=@0xbffff09c)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/interface_iarchive.hpp:60
 #7 0x080532e4 in
 boost::serialization::nvp<A*>::load<boost::archive::binary_iarchive>
 (this=0xbffff074, ar=...) at
 /usr/local/boost/1.47/include/boost/serialization/nvp.hpp:87
 #8 0x0805321a in
 boost::serialization::access::member_load<boost::archive::binary_iarchive,
 boost::serialization::nvp<A*> > (ar=..., t=..., file_version=0)
     at /usr/local/boost/1.47/include/boost/serialization/access.hpp:101
 #9 0x08053151 in
 boost::serialization::detail::member_loader<boost::archive::binary_iarchive,
 boost::serialization::nvp<A*> >::invoke (ar=..., t=..., file_version=0)
     at
 /usr/local/boost/1.47/include/boost/serialization/split_member.hpp:54
 #10 0x08053088 in
 boost::serialization::split_member<boost::archive::binary_iarchive,
 boost::serialization::nvp<A*> > (ar=..., t=..., file_version=0)
     at
 /usr/local/boost/1.47/include/boost/serialization/split_member.hpp:69
 #11 0x08052f5d in
 boost::serialization::nvp<A*>::serialize<boost::archive::binary_iarchive>
 (this=0xbffff074, ar=..., file_version=0)
     at /usr/local/boost/1.47/include/boost/serialization/nvp.hpp:89
 #12 0x08052ce4 in
 boost::serialization::access::serialize<boost::archive::binary_iarchive,
 boost::serialization::nvp<A*> > (ar=..., t=..., file_version=0)
     at /usr/local/boost/1.47/include/boost/serialization/access.hpp:118
 #13 0x080529eb in
 boost::serialization::serialize<boost::archive::binary_iarchive,
 boost::serialization::nvp<A*> > (ar=..., t=..., file_version=0)
     at
 /usr/local/boost/1.47/include/boost/serialization/serialization.hpp:69
 #14 0x0805285c in
 boost::serialization::serialize_adl<boost::archive::binary_iarchive,
 boost::serialization::nvp<A*> > (ar=..., t=..., file_version=0)
     at
 /usr/local/boost/1.47/include/boost/serialization/serialization.hpp:128
 #15 0x0805257f in
 boost::archive::detail::load_non_pointer_type<boost::archive::binary_iarchive>::load_only::invoke<boost::serialization::nvp<A*>
> (ar=..., t=...)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/iserializer.hpp:373
 #16 0x08051f28 in
 boost::archive::detail::load_non_pointer_type<boost::archive::binary_iarchive>::invoke<boost::serialization::nvp<A*>
 const> (ar=..., t=...)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/iserializer.hpp:439
 #17 0x080517ca in boost::archive::load<boost::archive::binary_iarchive,
 boost::serialization::nvp<A*> const> (ar=..., t=...)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/iserializer.hpp:592
 #18 0x0805115a in
 boost::archive::detail::common_iarchive<boost::archive::binary_iarchive>::load_override<boost::serialization::nvp<A*>
 const> (this=0xbffff46c, t=...)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/common_iarchive.hpp:66
 #19 0x08050a5b in
 boost::archive::basic_binary_iarchive<boost::archive::binary_iarchive>::load_override<boost::serialization::nvp<A*>
 const> (this=0xbffff46c, t=..., version=0)
     at
 /usr/local/boost/1.47/include/boost/archive/basic_binary_iarchive.hpp:70
 #20 0x08050224 in
 boost::archive::binary_iarchive_impl<boost::archive::binary_iarchive,
 char, std::char_traits<char>
>::load_override<boost::serialization::nvp<A*> const> (
     this=0xbffff46c, t=...) at
 /usr/local/boost/1.47/include/boost/archive/binary_iarchive_impl.hpp:50
 #21 0x0804fad4 in
 boost::archive::detail::interface_iarchive<boost::archive::binary_iarchive>::operator>><boost::serialization::nvp<A*>
 const> (this=0xbffff46c, t=...)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/interface_iarchive.hpp:60
 #22 0x0804f670 in
 boost::serialization::load<boost::archive::binary_iarchive, A> (ar=...,
 t=..., file_version=1)
     at
 /usr/local/boost/1.47/include/boost/serialization/shared_ptr.hpp:137
 #23 0x0804f0ea in
 boost::serialization::free_loader<boost::archive::binary_iarchive,
 boost::shared_ptr<A> >::invoke (ar=..., t=..., file_version=1)
     at /usr/local/boost/1.47/include/boost/serialization/split_free.hpp:58
 #24 0x0804e958 in
 boost::serialization::split_free<boost::archive::binary_iarchive,
 boost::shared_ptr<A> > (ar=..., t=..., file_version=1)
     at /usr/local/boost/1.47/include/boost/serialization/split_free.hpp:74
 #25 0x0804e55d in
 boost::serialization::serialize<boost::archive::binary_iarchive, A>
 (ar=..., t=..., file_version=1)
     at
 /usr/local/boost/1.47/include/boost/serialization/shared_ptr.hpp:171
 #26 0x0804dcac in
 boost::serialization::serialize_adl<boost::archive::binary_iarchive,
 boost::shared_ptr<A> > (ar=..., t=..., file_version=1)
     at
 /usr/local/boost/1.47/include/boost/serialization/serialization.hpp:128
 #27 0x0804d2aa in
 boost::archive::detail::iserializer<boost::archive::binary_iarchive,
 boost::shared_ptr<A> >::load_object_data (this=0x807c6ac, ar=...,
 x=0xbffff48c,
     file_version=1) at
 /usr/local/boost/1.47/include/boost/archive/detail/iserializer.hpp:188
 #28 0x080573a9 in
 boost::archive::detail::basic_iarchive::load_object(void*,
 boost::archive::detail::basic_iserializer const&) ()
 #29 0x0804cb2f in
 boost::archive::detail::load_non_pointer_type<boost::archive::binary_iarchive>::load_standard::invoke<boost::shared_ptr<A>
> (ar=..., t=...)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/iserializer.hpp:387
 #30 0x0804caba in
 boost::archive::detail::load_non_pointer_type<boost::archive::binary_iarchive>::invoke<boost::shared_ptr<A>
> (ar=..., t=...)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/iserializer.hpp:439
 #31 0x0804c468 in boost::archive::load<boost::archive::binary_iarchive,
 boost::shared_ptr<A> > (ar=..., t=...)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/iserializer.hpp:592
 ---Type <return> to continue, or q <return> to quit---
 #32 0x0804bfb2 in
 boost::archive::detail::common_iarchive<boost::archive::binary_iarchive>::load_override<boost::shared_ptr<A>
> (this=0xbffff46c, t=...)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/common_iarchive.hpp:66
 #33 0x0804bea5 in
 boost::archive::basic_binary_iarchive<boost::archive::binary_iarchive>::load_override<boost::shared_ptr<A>
> (this=0xbffff46c, t=..., version=0)
     at
 /usr/local/boost/1.47/include/boost/archive/basic_binary_iarchive.hpp:70
 #34 0x0804ba8a in
 boost::archive::binary_iarchive_impl<boost::archive::binary_iarchive,
 char, std::char_traits<char> >::load_override<boost::shared_ptr<A> >
 (this=0xbffff46c,
     t=...) at
 /usr/local/boost/1.47/include/boost/archive/binary_iarchive_impl.hpp:50
 #35 0x0804b694 in
 boost::archive::detail::interface_iarchive<boost::archive::binary_iarchive>::operator>><boost::shared_ptr<A>
> (this=0xbffff46c, t=...)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/interface_iarchive.hpp:60
 #36 0x0804b4f2 in
 boost::archive::detail::interface_iarchive<boost::archive::binary_iarchive>::operator&<boost::shared_ptr<A>
> (this=0xbffff46c, t=...)
     at
 /usr/local/boost/1.47/include/boost/archive/detail/interface_iarchive.hpp:67
 #37 0x0804a00b in main () at test20.cpp:85
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/5789#comment:1>
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:07 UTC