Boost logo

Boost Users :

Subject: Re: [Boost-users] serialization in 1.39: crash on program exit
From: Robert Ramey (ramey_at_[hidden])
Date: 2009-05-13 01:52:19


I think I've found an error in void_caster.cpp. Should be fixed in next
release

Robert Ramey

Ruediger Berlich wrote:
> Hi Filip,
>
> I cannot really help except by telling that I have seen a very similar
> problem with two compilers: Intel 10.1 (on Scientific Linux 4) and g++
> 4.3.2 (on OpenSUSE 11.1), both 64 bit.
>
> I am still not sure whether it is a problem with my own program or the
> serialization library. However, it seems to be related to singletons
> (of which I have two, and the serialization library maintains at
> least one, I believe), as the crash happens after the last command in
> main() (and thus does not affect my program at run-time).
>
> Best Regards,
> Ruediger
>
>
>
> Filip Peters wrote:
>> Hi,
>>
>> I just compiled our program with boost 1.39, upgraded from 1.38.
>> Now on exit I get a crash, (unhandled exception: stack overflow).
>> If I look at the call stack, it's filled with
>>
> Scene.dll!boost::serialization::void_cast_detail::void_caster_shortcut::~void_caster_shortcut()
>> Line 88 C++
>>
> Scene.dll!boost::serialization::void_cast_detail::void_caster_shortcut::`scalar
>> deleting destructor'() + 0xf bytes C++
>>
> Scene.dll!boost::serialization::void_cast_detail::void_caster::recursive_unregister()
>> Line 207 + 0x28 bytes C++
>>
> Scene.dll!boost::serialization::void_cast_detail::void_caster_shortcut::~void_caster_shortcut()
>> Line 88 C++
>>
> Scene.dll!boost::serialization::void_cast_detail::void_caster_shortcut::`scalar
>> deleting destructor'() + 0xf bytes C++
>>
> Scene.dll!boost::serialization::void_cast_detail::void_caster::recursive_unregister()
>> Line 207 + 0x28 bytes C++
>>
> Scene.dll!boost::serialization::void_cast_detail::void_caster_shortcut::~void_caster_shortcut()
>> Line 88 C++
>>
> Scene.dll!boost::serialization::void_cast_detail::void_caster_shortcut::`scalar
>> deleting destructor'() + 0xf bytes C++
>>
>> compiler: ms visual c++ 2008
>> boost 1.39.0
>>
>> I have a whole lot of classes that are registered with
>> BOOST_CLASS_EXPORT, and saved through a shared_ptr to a base class.
>> If I remove the exports, start and quit the application, I don't get
>> a crash.
>>
>> It was working fine in 1.37 and 1.38. (from 1.33.1 on in fact)
>>
>> Has anybody seen this before or any ideas?
>>
>> thx,
>> Filip Peters


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net