[ 
https://issues.apache.org/jira/browse/XERCESC-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12604502#action_12604502
 ] 

Guido Jäkel commented on XERCESC-1809:
--------------------------------------

Dear Boris,

... and the other will point me here, because it crashes in Xerces! Following 
your sugesstion, i have let build the Xerces test programms.

All from the test suite fails with an similar error. Here's the console 
printout of the first of the tested programs. Even StdInParse will fail with 
the same. This will fority that my problem with dbxml is cored here in Xerces-C.


And yes, this is the right path to the file - you'll see it from the following 
run through strace. May this help to find any hints to me?

thank you

Guido


-------------
[EMAIL PROTECTED] 
/var/tmp/portage/dev-libs/xerces-c-2.8.0/work/xerces-c-src_2_8_0/scripts # 
SAX2Count ../samples/data/personal.xml                              

Fatal Error at file , line 0, char 0
  Message:  An exception occurred! Type:RuntimeException, Message: The primary 
document entity could not be opened. 
Id=/var/tmp/portage/dev-libs/xerces-c-2.8.0/work/xerces-c-src_2_8_0/samples/data/personal.xml

[EMAIL PROTECTED] 
/var/tmp/portage/dev-libs/xerces-c-2.8.0/work/xerces-c-src_2_8_0/scripts # 
strace SAX2Count ../samples/data/personal.xml                       
execve("/var/tmp/portage/dev-libs/xerces-c-2.8.0/work/xerces-c-src_2_8_0//bin/SAX2Count",
 ["SAX2Count", "../samples/data/personal.xml"...], [/* 37 vars */]) = 0
brk(0)                                  = 0x60a000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2afadfd48000
uname({sys="Linux", node="leo2", ...})  = 0
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=24304, ...}) = 0
mmap(NULL, 24304, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2afadfd49000
close(3)                                = 0
open("/usr/lib/libxerces-c.so.28", O_RDONLY) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\207\30\0\0\0\0\0"..., 832) 
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=4189264, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2afadfd4f000
mmap(NULL, 6287960, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x2afadff49000
mprotect(0x2afae0304000, 2093056, PROT_NONE) = 0
mmap(0x2afae0503000, 282624, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3ba000) = 0x2afae0503000
mmap(0x2afae0548000, 600, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2afae0548000
close(3)                                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260W\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=131577, ...}) = 0
mmap(NULL, 2204528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x2afae0549000
mprotect(0x2afae055e000, 2097152, PROT_NONE) = 0
mmap(0x2afae075e000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x2afae075e000
mmap(0x2afae0760000, 13168, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2afae0760000
close(3)                                = 0
open("/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>[EMAIL PROTECTED]"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=985888, ...}) = 0
mmap(NULL, 3157792, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x2afae0764000
mprotect(0x2afae084c000, 2097152, PROT_NONE) = 0
mmap(0x2afae0a4c000, 36864, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe8000) = 0x2afae0a4c000
mmap(0x2afae0a55000, 73504, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2afae0a55000
close(3)                                = 0
open("/lib/libm.so.6", O_RDONLY)        = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0?\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=526472, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2afae0a67000
mmap(NULL, 2621672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x2afae0a68000
mprotect(0x2afae0ae8000, 2093056, PROT_NONE) = 0
mmap(0x2afae0ce7000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7f000) = 0x2afae0ce7000
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\37\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=55400, ...}) = 0
mmap(NULL, 2151240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x2afae0ce9000
mprotect(0x2afae0cf6000, 2093056, PROT_NONE) = 0
mmap(0x2afae0ef5000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc000) = 0x2afae0ef5000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\334\1\0\0\0\0\0"..., 832) = 
832
fstat(3, {st_mode=S_IFREG|0755, st_size=1293456, ...}) = 0
mmap(NULL, 3399928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x2afae0ef7000
mprotect(0x2afae102d000, 2093056, PROT_NONE) = 0
mmap(0x2afae122c000, 20480, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x135000) = 0x2afae122c000
mmap(0x2afae1231000, 16632, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2afae1231000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2afae1236000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2afae1237000
arch_prctl(ARCH_SET_FS, 0x2afae12372f0) = 0
mprotect(0x2afae122c000, 16384, PROT_READ) = 0
mprotect(0x2afae0ef5000, 4096, PROT_READ) = 0
mprotect(0x2afae0ce7000, 4096, PROT_READ) = 0
mprotect(0x2afae0a4c000, 28672, PROT_READ) = 0
mprotect(0x2afae075e000, 4096, PROT_READ) = 0
mprotect(0x2afae0503000, 110592, PROT_READ) = 0
mprotect(0x608000, 4096, PROT_READ)     = 0
mprotect(0x2afadff47000, 4096, PROT_READ) = 0
munmap(0x2afadfd49000, 24304)           = 0
set_tid_address(0x2afae1237380)         = 1659
set_robust_list(0x2afae1237390, 0x18)   = 0
rt_sigaction(SIGRTMIN, {0x2afae054e320, [], SA_RESTORER|SA_SIGINFO, 
0x2afae0556ed0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x2afae054e3a0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 
0x2afae0556ed0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
futex(0x2afae0a56c88, FUTEX_WAKE, 2147483647) = 0
brk(0)                                  = 0x60a000
brk(0x62b000)                           = 0x62b000
open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=25488, ...}) = 0
mmap(NULL, 25488, PROT_READ, MAP_SHARED, 3, 0) = 0x2afadfd50000
close(3)                                = 0
futex(0x2afae1230f18, FUTEX_WAKE, 2147483647) = 0
open("/usr/lib64/gconv/ISO8859-1.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\4\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=10104, ...}) = 0
mmap(NULL, 2105392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x2afae1238000
mprotect(0x2afae123a000, 2093056, PROT_NONE) = 0
mmap(0x2afae1439000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x2afae1439000
close(3)                                = 0
mprotect(0x2afae1439000, 4096, PROT_READ) = 0
getcwd("/var/tmp/portage/dev-libs/xerces-c-2.8.0/work/xerces-c-src_2_8_0/scripts",
 4097) = 73
open(NULL, O_RDONLY)                    = -1 EFAULT (Bad address)
open("/usr/share/xerces-c/msg/XercesMessages_en_US.cat", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=74035, ...}) = 0
mmap(NULL, 74035, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2afae143b000
close(3)                                = 0
futex(0x2afae0ef6130, FUTEX_WAKE, 2147483647) = 0
open("/usr/share/xerces-c/msg/XercesMessages_en_US.cat", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=74035, ...}) = 0
mmap(NULL, 74035, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2afae144e000
close(3)                                = 0
write(2, "\nFatal Error at file ", 21
Fatal Error at file )  = 21
write(2, ", line ", 7, line )                  = 7
write(2, "0", 10)                        = 1
write(2, ", char ", 7, char )                  = 7
write(2, "0", 10)                        = 1
write(2, "\n  Message: ", 12
  Message: )           = 12
write(2, " An exception occurred! Type:Run"..., 198 An exception occurred! 
Type:RuntimeException, Message: The primary document entity could not be 
opened. 
Id=/var/tmp/portage/dev-libs/xerces-c-2.8.0/work/xerces-c-src_2_8_0/samples/data/personal.xml)
 = 198
write(2, "\n", 1
)                       = 1
munmap(0x2afae144e000, 74035)           = 0
munmap(0x2afae143b000, 74035)           = 0
exit_group(4)                           = ?
[EMAIL PROTECTED] 
/var/tmp/portage/dev-libs/xerces-c-2.8.0/work/xerces-c-src_2_8_0/scripts #
-----------------

> seg fault on 64bit
> ------------------
>
>                 Key: XERCESC-1809
>                 URL: https://issues.apache.org/jira/browse/XERCESC-1809
>             Project: Xerces-C++
>          Issue Type: Bug
>    Affects Versions: 2.8.0
>         Environment: Gentoo-Linux (emerge --version -> Portage 2.1.4.4 
> (default-linux/amd64/2007.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.21-gentoo-r4 
> x86_64))
>            Reporter: Guido Jäkel
>
> I try to advance the Gentoo ebuild for dbxml to 2.4.13. For that, Xerces-C 
> 2.8.0 and XQuilla is a prerequesite. The Gentoo ebuild for Xerces-C have been 
> tweeked to include the patches for XQilla this days. Now i'm able to build 
> dbxml on 32bit and 64bit. On 32bit it seems to work from the first tests, but 
> on 64bit even a simple "dbxml -v" dies with an segmentation fault.
> With gdb, i got the following stack trace:
> #0 0x00002abcb1fe6c2c in ?? () from /lib/libc.so.6
> #1 0x00002abcb14f5de0 in xercesc_2_8::XMLString::parseInt () from 
> /usr/lib/libxerces-c.so.28
> #2 0x00002abcb13b3bbd in xercesc_2_8::AbstractStringValidator::assignFacet () 
> from /usr/lib/libxerces-c.so.28
> #3 0x00002abcb13b411d in xercesc_2_8::AbstractStringValidator::init () from 
> /usr/lib/libxerces-c.so.28
> #4 0x00002abcb144cfe0 in 
> xercesc_2_8::ListDatatypeValidator::ListDatatypeValidator () from 
> /usr/lib/libxerces-c.so.28
> #5 0x00002abcb141837e in 
> xercesc_2_8::DatatypeValidatorFactory::createDatatypeValidator () from 
> /usr/lib/libxerces-c.so.28
> #6 0x00002abcb14198f9 in 
> xercesc_2_8::DatatypeValidatorFactory::expandRegistryToFullSchemaSet ()
> from /usr/lib/libxerces-c.so.28
> #7 0x00002abcb097e733 in XQillaPlatformUtils::initialize () from 
> /usr/lib/libxqilla.so.4
> #8 0x00002abcb00d9fff in DbXml::Globals::initializeXmlPlatform () from 
> /usr/lib/libdbxml-2.4.so
> #9 0x00002abcb00da53f in DbXml::Globals::initialize () from 
> /usr/lib/libdbxml-2.4.so
> #10 0x00002abcb00df043 in DbXml::Manager::Manager () from 
> /usr/lib/libdbxml-2.4.so
> #11 0x00002abcb00d8fca in DbXml::XmlManager::XmlManager () from 
> /usr/lib/libdbxml-2.4.so
> #12 0x000000000040c259 in ?? ()
> #13 0x00002abcb1fd0b74 in __libc_start_main () from /lib/libc.so.6
> #14 0x000000000040ba39 in ?? ()
> #15 0x00007ffffad47148 in ?? ()
> #16 0x0000000000000000 in ?? ()
> From that, i *guess* that it break's HERE, because this looks like a 
> libc-call to me.
> .../xerces-c-src/src/xercesc/util/XMLString.cpp:
> int XMLString::parseInt(const XMLCh* const toConvert
>                      , MemoryManager* const manager)
> {
>     // If no string, or empty string, then it is a failure
>     if ((!toConvert) || (!*toConvert))
>         ThrowXMLwithMemMgr(NumberFormatException, 
> XMLExcepts::XMLNUM_null_ptr, manager);
>         XMLCh* trimmedStr = XMLString::replicate(toConvert, manager);
>         ArrayJanitor<XMLCh> jan1(trimmedStr, manager);
>         XMLString::trim(trimmedStr);
>     unsigned int trimmedStrLen = XMLString::stringLen(trimmedStr);
>         if ( !trimmedStrLen )
>         ThrowXMLwithMemMgr(NumberFormatException, 
> XMLExcepts::XMLNUM_null_ptr, manager);
>         //the errno set by previous run is NOT automatically cleared
>         errno = 0;
>         char *nptr = XMLString::transcode(trimmedStr, manager);
>     ArrayJanitor<char> jan2(nptr, manager);
>     char *endptr;
>     long retVal = strtol(nptr, &endptr, 10);     <-----[HERE]
>         // check if all chars are valid char
>         if ( (endptr - nptr) != (int) trimmedStrLen)
>                 ThrowXMLwithMemMgr(NumberFormatException, 
> XMLExcepts::XMLNUM_Inv_chars, manager);
>         // check if overflow/underflow occurs
>     if (errno == ERANGE)
>         ThrowXMLwithMemMgr(NumberFormatException, 
> XMLExcepts::Str_ConvertOverflow, manager);
>          //
>      // REVISIT: conversion of (long) to (int)
>          //          may truncate value on IA64
>         return (int) retVal;
> }
> May please anybody give me a hint how to get it running on 64bit? Feel free 
> to ask for further information you'll need,
> thank you
> Guido

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to