[
https://issues.apache.org/jira/browse/XERCESC-2154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16645045#comment-16645045
]
Scott Cantor commented on XERCESC-2154:
---------------------------------------
Officially unless a maintainer for Solaris appears, it has been considered
unsupported since the 3.1 release. I do no testing on it and will never again
spend a second on Solaris. Just want that to be 100% clear. Patches are always
welcome.
> "terminate called after throwing an instance of
> 'xercesc_3_2::XMLErrs::Codes'" crash on Solaris x86 with invalid xml input
> (c++11)
> ----------------------------------------------------------------------------------------------------------------------------------
>
> Key: XERCESC-2154
> URL: https://issues.apache.org/jira/browse/XERCESC-2154
> Project: Xerces-C++
> Issue Type: Bug
> Components: DOM
> Affects Versions: 3.2.1, 3.2.2
> Environment: Oracle compiler version (supports c++11):
> [hostname]/: /opt/developerstudio12.6/bin/CC -V
> CC: Studio 12.6 Sun C++ 5.15 SunOS_i386 2017/05/30
> OS version:
> [hostname]/: uname -a
> SunOS hostname 5.10 Generic_150401-61 i86pc i386 i86pc
> Reporter: Grzegorz Majka
> Priority: Major
> Attachments: xml_broken.xml, xml_ok.xml
>
>
> Hi,
> I have a problem running xerces on Solaris x86 platform compiled with
> '-std=c++11' flag using Oracle developer studio 12.6. The compilation is fine
> and the library works fine in all positive scenarios, but it fails with Abort
> signal (core dumped) when an XML content to process is broken ending with the
> error message:
> "terminate called after throwing an instance of 'xercesc_3_2::XMLErrs::Codes'"
> I was able to isolate the problem by using DOMPrint example run with a file
> with an invalid xml content.
> The positive scenario:
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2:
> export
> LD_LIBRARY_PATH=/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2/src/.libs:/opt/developerstudio12.6/lib/compilers/CC-gcc/lib
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2/samples:
> ./.libs/DOMPrint xml_ok.xml
> <?xml version="1.0" encoding="UTF-8" standalone="no" ?><IBM>
> <CIT>
> <Hardware version="1.0">
> <Group Name="Lpar"/>
> </Hardware>
> </CIT>
> </IBM>
> The negative scenario:
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2/samples:
> ./.libs/DOMPrint xml_broken.xml
> Fatal Error at file
> "/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2/samples/xml_broken.xml",
> line 5, column 1
> Message: input ended before all started tags were ended; last tag started
> is 'Hardware'
> terminate called after throwing an instance of 'xercesc_3_2::XMLErrs::Codes'
> Abort (core dumped)
> I attach both xml_ok.xml and xml_broken.xml files for your reference.
> Details:
> 1)
> Xerces version 3.2.1 (I also tried with 3.2.2 with the same behavior)
> 2)
> Oracle compiler version (supports c++11):
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2:
> /opt/developerstudio12.6/bin/CC -V
> CC: Studio 12.6 Sun C++ 5.15 SunOS_i386 2017/05/30
> OS version:
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2:
> uname -a
> SunOS hostname 5.10 Generic_150401-61 i86pc i386 i86pc
> 3)
> Configure options:
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2:
> chmod +x ./configure.solaris; chmod +x config/install-sh; ./configure.solaris
> CXX="/opt/developerstudio12.6/bin/CC" CC="/opt/developerstudio12.6/bin/cc"
> LD="/opt/developerstudio12.6/bin/CC" LDFLAGS="-std=c++11
> -L/opt/developerstudio12.6/lib/compilers/CC-gcc/lib -lstdc++ -lgcc_s -lCrunG3
> -s" CFLAGS="-xO2 -D_XOPEN_SOURCE_EXTENDED=1 -D__EXTENSIONS__ -Kpic -mt"
> CXXFLAGS="-xO2 -D_XOPEN_SOURCE_EXTENDED=1 -D__EXTENSIONS__ -Kpic -mt
> -std=c++11" --disable-static --enable-xmlch-uint16_t
> AR="/opt/developerstudio12.6/bin/CC -xar" ARFLAGS=-o --enable-transcoder-iconv
> ...
> ...
> configure.solaris: Report:
> configure.solaris: File Manager: POSIX
> configure.solaris: Mutex Manager: standard
> configure.solaris: Transcoder: iconv
> configure.solaris: NetAccessor: socket
> configure.solaris: Message Loader: inmemory
> configure.solaris: XMLCh Type: uint16_t
> 4)
> "ldd" outputs:
> Initially I had issues with "terminate called after throwing an instance ..."
> because I mistakenly linked to both
> - c++11 libraries: stdc++ gcc_s CrunG3
> - and standard libraries: Cstd stlport4 stdcxx4 Crun iostream libraries
> which is not allowed.
> Xerces compiled, but failed in almost all scenarios with similar "terminate
> called..." crashes. After fixing the issue (getting rid of linking to
> standard (Cstd and Crun) libraries) all test cases passed except the negative
> ones.
> Here is the list of "ldd" outputs:
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2/samples:
> file ./.libs/DOMPrint
> ./.libs/DOMPrint: ELF 32-bit LSB executable 80386 Version 1 [SSE2 SSE],
> dynamically linked, stripped
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2/samples:
> ldd ./.libs/DOMPrint
> libxerces-c-3.2.so =>
> /rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2/src/.libs/libxerces-c-3.2.so
> libstdc++.so.6 =>
> /opt/developerstudio12.6/lib/compilers/CC-gcc/lib/libstdc++.so.6
> libgcc_s.so.1 =>
> /opt/developerstudio12.6/lib/compilers/CC-gcc/lib/libgcc_s.so.1
> libCrunG3.so.1 => /usr/lib/libCrunG3.so.1
> libnsl.so.1 => /lib/libnsl.so.1
> libsocket.so.1 => /lib/libsocket.so.1
> libstatomic.so.1 =>
> /opt/developerstudio12.6/lib/compilers/atomic/libstatomic.so.1
> librt.so.1 => /lib/librt.so.1
> libm.so.2 => /lib/libm.so.2
> libc.so.1 => /lib/libc.so.1
> libmp.so.2 => /lib/libmp.so.2
> libmd.so.1 => /lib/libmd.so.1
> libscf.so.1 => /lib/libscf.so.1
> libaio.so.1 => /lib/libaio.so.1
> libdoor.so.1 => /lib/libdoor.so.1
> libuutil.so.1 => /lib/libuutil.so.1
> libgen.so.1 => /lib/libgen.so.1
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2/samples:
> cd ..
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2:
> file src/.libs/libxerces-c-3.2.so
> src/.libs/libxerces-c-3.2.so: ELF 32-bit LSB dynamic lib 80386 Version 1
> [SSE2 SSE], dynamically linked, not stripped
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2: ldd
> src/.libs/libxerces-c-3.2.so
> libstdc++.so.6 =>
> /opt/developerstudio12.6/lib/compilers/CC-gcc/lib/libstdc++.so.6
> libgcc_s.so.1 =>
> /opt/developerstudio12.6/lib/compilers/CC-gcc/lib/libgcc_s.so.1
> libCrunG3.so.1 => /usr/lib/libCrunG3.so.1
> libnsl.so.1 => /lib/libnsl.so.1
> libsocket.so.1 => /lib/libsocket.so.1
> libc.so.1 => /lib/libc.so.1
> libm.so.2 => /lib/libm.so.2
> librt.so.1 => /lib/librt.so.1
> libmp.so.2 => /lib/libmp.so.2
> libmd.so.1 => /lib/libmd.so.1
> libscf.so.1 => /lib/libscf.so.1
> libaio.so.1 => /lib/libaio.so.1
> libdoor.so.1 => /lib/libdoor.so.1
> libuutil.so.1 => /lib/libuutil.so.1
> libgen.so.1 => /lib/libgen.so.1
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2:
> 5)
> "dbx" output:
> [hostname]/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2/samples:
> dbx -a ./.libs/DOMPrint xml_broken.xml
> For information about new features see `help changes'
> To remove this message, put `dbxenv suppress_startup_message 8.2' in your
> .dbxrc
> Reading DOMPrint
> Reading ld.so.1
> Reading libxerces-c-3.2.so
> Reading libstdc++.so.6.0.21
> Reading libgcc_s.so.1
> Reading libCrunG3.so.1
> Reading libnsl.so.1
> Reading libsocket.so.1
> Reading libstatomic.so.1
> Reading librt.so.1
> Reading libm.so.2
> Reading libc.so.1
> Reading libaio.so.1
> Reading libmd.so.1
> (dbx) run
> Running: DOMPrint xml_broken.xml
> (process id 11188)
> Fatal Error at file
> "/rome/homes/cit/gmajka/xerces_tests/solaris_322/xerces-c-3.2.2/samples/xml_broken.xml",
> line 5, column 1
> Message: input ended before all started tags were ended; last tag started
> is 'Hardware'
> terminate called after throwing an instance of 'xercesc_3_2::XMLErrs::Codes'
> signal ABRT (Abort) in __lwp_kill at 0xfe66c9b5
> 0xfe66c9b5: __lwp_kill+0x0015: jae __lwp_kill+0x23 [ 0xfe66c9c3,
> .+0xe ]
> (dbx) where
> =>[1] __lwp_kill(0x1, 0x6), at 0xfe66c9b5
> [2] _thr_kill(0x1, 0x6), at 0xfe66782c
> [3] raise(0x6), at 0xfe6137db
> [4] abort(0xfe8725cc, 0x107, 0x80b6110, 0xfe6d3cd8, 0xfef90c00,
> 0xfe8725cc), at 0xfe5f29f5
> [5] __gnu_cxx::__verbose_terminate_handler(0x1, 0x0, 0xfe96c64b,
> 0xfe9b1008, 0x80f0fd8, 0xf6), at 0xfe96f9e5
> [6] 0xfe96c657(0xfe96f870, 0x0, 0xfe96c6b5, 0xfe96c6e7, 0xfe96c6d9,
> 0xfe9b1008), at 0xfe96c657
> [7] std::terminate(0x80f0fd8, 0xfef90c00, 0xfe96c6b5, 0xfe96c94f,
> 0xfee4dfa8, 0x0), at 0xfe96c6f0
> [8] __gnu_cxx::__verbose_terminate_handler(0x1, 0x6, 0xfe6d0000, 0x804557c,
> 0xfe6137db, 0x1), at 0xfe96f870
> (dbx)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]