[Serialization] crash in boost::serialization::extended_type_info::key_unregister ()
I am using boost 1.39 on suse linux with gcc 4.2.1 and using a debug build. In order to rationalize the long compile times, I was attempting to split a file into multiple translation units. When I ran my tests, they all passed, but then crashed with a memory fault. Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb7cd26d0 (LWP 21897)] 0xb7d40a08 in strcmp () from /lib/libc.so.6 (gdb) bt #0 0xb7d40a08 in strcmp () from /lib/libc.so.6 #1 0x08e19924 in boost::serialization::extended_type_info::key_unregister () #2 0x08e19ace in boost::serialization::extended_type_info::~extended_type_info () #3 0x08c41afc in ~extended_type_info_typeid (this=0x92179cc) at /var/tmp/ma0/boost/boost_1_39_0/boost/serialization/extended_type_info_typeid.hpp:80 #4 0x08c41bbe in ~singleton_wrapper (this=0x92179cc) at /var/tmp/ma0/boost/boost_1_39_0/boost/serialization/singleton.hpp:104 #5 0x08c209e0 in __tcf_25 () at /var/tmp/ma0/boost/boost_1_39_0/boost/serialization/singleton.hpp:121 #6 0xb7d00599 in exit () from /lib/libc.so.6 #7 0xb7ce9fe8 in __libc_start_main () from /lib/libc.so.6 #8 0x08a833f1 in _start () It appears that boost serialisation type registration has problems when it is split into multiple files. Also it appears that most of serialisation test all appear in a single file, hence these kinds of issues can easily be missed. Is there any work around to this problem ? Best regards, Ta, Avi
I believe this has been fixed in the more recent version of the library. Robert Ramey Avi Bahra wrote:
I am using boost 1.39 on suse linux with gcc 4.2.1 and using a debug build. In order to rationalize the long compile times, I was attempting to split a file into multiple translation units. When I ran my tests, they all passed, but then crashed with a memory fault.
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb7cd26d0 (LWP 21897)] 0xb7d40a08 in strcmp () from /lib/libc.so.6 (gdb) bt #0 0xb7d40a08 in strcmp () from /lib/libc.so.6 #1 0x08e19924 in boost::serialization::extended_type_info::key_unregister () #2 0x08e19ace in boost::serialization::extended_type_info::~extended_type_info () #3 0x08c41afc in ~extended_type_info_typeid (this=0x92179cc) at /var/tmp/ma0/boost/boost_1_39_0/boost/serialization/extended_type_info_typeid.hpp:80 #4 0x08c41bbe in ~singleton_wrapper (this=0x92179cc) at /var/tmp/ma0/boost/boost_1_39_0/boost/serialization/singleton.hpp:104 #5 0x08c209e0 in __tcf_25 () at /var/tmp/ma0/boost/boost_1_39_0/boost/serialization/singleton.hpp:121 #6 0xb7d00599 in exit () from /lib/libc.so.6 #7 0xb7ce9fe8 in __libc_start_main () from /lib/libc.so.6 #8 0x08a833f1 in _start ()
It appears that boost serialisation type registration has problems when it is split into multiple files. Also it appears that most of serialisation test all appear in a single file, hence these kinds of issues can easily be missed. Is there any work around to this problem ?
Best regards, Ta, Avi
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Avi Bahra
-
Robert Ramey