You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-users@xerces.apache.org by Tin Chee Kam <tc...@gmail.com> on 2012/09/25 21:02:24 UTC

process abort after BinFileInputStream destructor incurred an exception

Hi,

We have a multi-threaded program that runs on SUSE Linux that uses the
libxerces-c.so.27 shared lib. We are getting intermittent crashes. Below is
the backtrace from the core.
Looks like the BinFileInputStream destructor calls
XML:PlatformUtils::closeFile which can throw a
XMLExcepts::File_CouldNotCloseFile exception.
I have no idea why the close file will fail (files should be read only) but
if it does, the exception will cause the process termination handler to be
called and abort.
Has anyone seen this before? Is this a bug? Shouldn't the
BinFileInputStream destructor have code to handle the
XMLExcepts::File_CouldNotCloseFile exception?

Thanks.

Tinchee

(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7d40ad0 in raise () from /lib/libc.so.6
#2  0xb7d421f3 in abort () from /lib/libc.so.6
#3  0xb77debc4 in (anonymous namespace)::UncaughtHandler ()
   from /usr/lib/crm/libCrm.so
#4  0xb7f27537 in ?? () from /usr/lib/libstdc++.so.6
#5  0xb7f262e9 in ?? () from /usr/lib/libstdc++.so.6
#6  0xb7f27439 in __gxx_personality_v0 () from /usr/lib/libstdc++.so.6
#7  0xb7e416c6 in _Unwind_RaiseException_Phase2 (exc=0x8c1a500,
    context=0xb6e07404) at ./unwind.inc:66
#8  0xb7e41afb in _Unwind_Resume (exc=0x8c1a500) at ./unwind.inc:234
#9  0xb734f5ed in xercesc_2_7::BinFileInputStream::~BinFileInputStream ()
   from /usr/lib/libxerces-c.so.27
#10 0xb74ac464 in xercesc_2_7::XMLReader::~XMLReader ()
   from /usr/lib/libxerces-c.so.27
#11 0xb741ca20 in xercesc_2_7::ReaderMgr::reset ()
   from /usr/lib/libxerces-c.so.27
#12 0xb7366984 in
xercesc_2_7::JanitorMemFunCall<xercesc_2_7::ReaderMgr>::~JanitorMemFunCall
() from /usr/lib/libxerces-c.so.27
#13 0xb73ec817 in xercesc_2_7::IGXMLScanner::scanDocument ()
   from /usr/lib/libxerces-c.so.27
#14 0xb733d185 in xercesc_2_7::AbstractDOMParser::parse ()
   from /usr/lib/libxerces-c.so.27
#15 0xb73f4e12 in xercesc_2_7::IGXMLScanner::resolveSchemaGrammar ()
   from /usr/lib/libxerces-c.so.27
#16 0xb73f59b4 in xercesc_2_7::IGXMLScanner::parseSchemaLocation ()
   from /usr/lib/libxerces-c.so.27
#17 0xb73e9443 in xercesc_2_7::IGXMLScanner::scanStartTagNS ()
   from /usr/lib/libxerces-c.so.27
#18 0xb73ec683 in xercesc_2_7::IGXMLScanner::scanContent ()
   from /usr/lib/libxerces-c.so.27
#19 0xb73ec7bf in xercesc_2_7::IGXMLScanner::scanDocument ()
   from /usr/lib/libxerces-c.so.27
#20 0xb733d185 in xercesc_2_7::AbstractDOMParser::parse ()
   from /usr/lib/libxerces-c.so.27
#21 0xb7a1b64e in iss::cml::CCmlParser::Parse () from /usr/lib/crm/libCrm.so
#22 0xb7a19d4b in iss::cml::CCmlParser::ValidatingParse ()
   from /usr/lib/crm/libCrm.so
#23 0xb7a1dd83 in iss::cml::CCmlParser::Initialize ()
   from /usr/lib/crm/libCrm.so
#24 0xb7a19eb4 in iss::cml::CCmlParser::Initialize ()
   from /usr/lib/crm/libCrm.so
#25 0xb77faa7c in NP_CrmSensor::ProcessCmlInput () from
/usr/lib/crm/libCrm.so
#26 0x080689f1 in __gxx_personality_v0 ()
#27 0x08138938 in jsThreadImpl::EntryPoint ()
#28 0xb7f7b2ab in start_thread () from /lib/libpthread.so.0
#29 0xb7dd73fe in clone () from /lib/libc.so.6
(gdb)