[
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: [email protected]
For additional commands, e-mail: [email protected]