id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 2266,destructors of basic_binary_[io]primitive throw exceptions,Igor Nazarenko,Robert Ramey,"See: boost/archive/impl/basic_binary_oprimitive.ipp, boost/archive/impl/basic_binary_iprimitive.ipp Destructors of both basic_binary_oprimitive and basic_binary_iprimitive throw exceptions, see the code snippet below. I'm trying to use binary archives to send data over a pipe. Assume one of the pipe ends is closed unexpectedly. On the other end of the pipe the archive gets an exception, runtime tries to unroll the stack, calls this destructor, the destructor throws again and my program terminates without warning. --------------------- code excerpt --------------------- basic_binary_iprimitive::~basic_binary_iprimitive(){ // push back unread characters int result = static_cast &>( m_sb ).sync(); if(0 != result){ boost::throw_exception( archive_exception(archive_exception::stream_error) ); } } ",Bugs,closed,,serialization,Boost 1.35.0,Showstopper,fixed,,