[ https://issues.apache.org/jira/browse/XERCESC-2184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sriram closed XERCESC-2184. --------------------------- Resolution: Workaround > Application crashes on Solaris-Sparc 11.3 when parsing XML document with > schema validation > ------------------------------------------------------------------------------------------ > > Key: XERCESC-2184 > URL: https://issues.apache.org/jira/browse/XERCESC-2184 > Project: Xerces-C++ > Issue Type: Bug > Components: DOM > Affects Versions: 3.2.2 > Environment: Solaris Sparc 11.3 with Solaris Studio 12.6 compiler > tool set > Reporter: Sriram > Priority: Major > > Hi, > I built Xerces-C 3.2.2 static library on Solaris Sparc 11.3 with Solaris > Studio 12.6 compiler using CMAKE build system. The static library was built, > and I could build an executable statically linked to the Xerces-C 3.2.2 > static library. However, when running the executable on Solaris Sparc 11.3 > system, it immediately crashed with "abort" signal. The backtrace looks as > follows. It appears that the parser is throwing InvalidDatatypeException, and > even though my application has catch (...), the exception is NOT being > caught. > > Here is the CMAKE configure command to build Xerces-C 3.2.2 on Solaris Sparc > 11.3: > cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=../solaris-sparc > -Dnetwork:BOOL=OFF -Dxmlch-type=uint16_t -DBUILD_SHARED_LIBS:BOOL=OFF > -DCMAKE_CXX_FLAGS:STRING="-m64 -std=c++11 -KPIC“ > -DCMAKE_C_FLAGS:STRING="-m64" -Dtranscoder=iconv ../ > > Please find attached source code of this simple test application. > Here is the back trace: > terminate called after throwing an instance of > 'xercesc_3_2::InvalidDatatypeValueException' > t@1 (l@1) signal ABRT (Abort) in __lwp_sigqueue at 0xffffffff7d74e894 > 0xffffffff7d74e894: __lwp_sigqueue+0x0008: bcc,a,pt > %icc,__lwp_sigqueue+0x18 ! 0xffffffff7d74e8a4 > Current function is __gnu_cxx::__verbose_terminate_handler > dbx: warning: can't find file > "/builds/ul11u3sru-gate/components/gcc7/gcc-7.3.0/libstdc++-v3/libsupc++/vterminate.cc" > dbx: warning: see `help finding-files' > (dbx) where > current thread: t@1 > [1] __lwp_sigqueue(0x0, 0x1, 0x6, 0x0, 0xffffffffffffffff, 0x0), at > 0xffffffff7d74e894 > [2] raise(0x6, 0xffffffff7fffa1c0, 0x5, 0x5, 0x0, 0x0), at > 0xffffffff7d6f7c94 > [3] abort(0x1, 0x1000, 0x6, 0x0, 0x1be3f4, 0x1000), at 0xffffffff7d6cbd14 > =>[4] __gnu_cxx::__verbose_terminate_handler(), line 95 in "vterminate.cc" > [5] __cxxabiv1::__terminate(handler = 0xffffffff7e45de7c = > &__gnu_cxx::__verbose_terminate_handler()), line 47 in "eh_terminate.cc" > [6] std::terminate(), line 57 in "eh_terminate.cc" > [7] __cxa_throw(obj = 0x10108fda0, tinfo = 0x100d91ec8, dest = 0x1006fa050 > = > &xercesc_3_2::InvalidDatatypeValueException::~InvalidDatatypeValueException()), > line 93 in "eh_throw.cc" > [8] xercesc_3_2::AbstractStringValidator::checkContent(this = 0x101065688, > content = 0x100fee7c0 "", context = 0x100fd6158, asBase = false, manager = > 0x100dedee0), line 578 in "AbstractStringValidator.cpp" > [9] xercesc_3_2::AbstractStringValidator::validate(this = 0x101065688, > content = 0x100fee7c0 "", context = 0x100fd6158, manager = 0x100dedee0), line > 552 in "AbstractStringValidator.cpp" > [10] xercesc_3_2::UnionDatatypeValidator::checkContent(this = 0x101066128, > content = 0x100fee7c0 "", context = 0x100fd6158, asBase = false, manager = > 0x100dedee0), line 257 in "UnionDatatypeValidator.cpp" > [11] xercesc_3_2::UnionDatatypeValidator::validate(this = 0x101066128, > content = 0x100fee7c0 "", context = 0x100fd6158, manager = 0x100dedee0), line > 231 in "UnionDatatypeValidator.hpp" > [12] xercesc_3_2::TraverseSchema::traverseAttributeDecl(this = > 0xffffffff7fffc458, elem = 0x100fee240, typeInfo = (nil), topLevel = false), > line 2520 in "TraverseSchema.cpp" > [13] xercesc_3_2::TraverseSchema::traverseAttributeGroupDecl(this = > 0xffffffff7fffc458, elem = 0x100fedb28, typeInfo = (nil), topLevel = true), > line 1837 in "TraverseSchema.cpp" > [14] xercesc_3_2::TraverseSchema::processChildren(this = > 0xffffffff7fffc458, root = 0x100fec0e8), line 4855 in "TraverseSchema.cpp" > [15] xercesc_3_2::TraverseSchema::traverseInclude(this = > 0xffffffff7fffc458, elem = 0x100ec4958), line 721 in "TraverseSchema.cpp" > [16] xercesc_3_2::TraverseSchema::processChildren(this = > 0xffffffff7fffc458, root = 0x100ec3428), line 4754 in "TraverseSchema.cpp" > [17] xercesc_3_2::TraverseSchema::doTraverseSchema(this = > 0xffffffff7fffc458, schemaRoot = 0x100ec3428), line 270 in > "TraverseSchema.cpp" > [18] xercesc_3_2::TraverseSchema::TraverseSchema(this = 0xffffffff7fffc458, > schemaRoot = 0x100ec3428, uriStringPool = 0x100de3678, schemaGrammar = > 0x100e98348, grammarResolver = 0x100e4c948, cachedSchemaInfoList = > 0x100e47328, schemaInfoList = 0x100e47328, xmlScanner = 0x100e4d3a8, > schemaURL = 0x100e96b00 "Cannot print the string.", entityHandler = (nil), > errorReporter = 0x100e4bf40, manager = 0x100dedee0, multipleImport = false), > line 236 in "TraverseSchema.cpp" > [19] xercesc_3_2::IGXMLScanner::resolveSchemaGrammar(this = 0x100e4d3a8, > loc = 0x100e55dc0 "Cannot print the string.", uri = 0x1004e5c18 "", > ignoreLoadSchema = true), line 1979 in "IGXMLScanner2.cpp" > [20] xercesc_3_2::IGXMLScanner::scanStartTagNS(this = 0x100e4d3a8, gotData > = true), line 2207 in "IGXMLScanner.cpp" > [21] xercesc_3_2::IGXMLScanner::scanContent(this = 0x100e4d3a8), line 890 > in "IGXMLScanner.cpp" > [22] xercesc_3_2::IGXMLScanner::scanDocument(this = 0x100e4d3a8, src = > CLASS), line 217 in "IGXMLScanner.cpp" > [23] xercesc_3_2::XMLScanner::scanDocument(this = 0x100e4d3a8, systemId = > 0x100e47460 "Cannot print the string."), line 402 in "XMLScanner.cpp" > > -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: c-dev-h...@xerces.apache.org