Re: [xml] libxml and thread



As you purposed I compiled the lib with:
./configure --disable-shared --with-run-debug && make

I still have a segmentation fault but this time I activate the coredumping !
Here is my "tests":


1
.__________________________________________________________________________________________________


Running against valgrind generate no coredump:
libxml2-2.7.2$ valgrind --leak-check=full --leak-resolution=high
--track-origins=yes ./runtest
==12391== Memcheck, a memory error detector.
==12391== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
==12391== Using LibVEX rev 1884, a library for dynamic binary translation.
==12391== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
==12391== Using valgrind-3.4.1-Debian, a dynamic binary instrumentation
framework.
==12391== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
==12391== For more details, rerun with: -v
==12391==
## XML regression tests
## XML regression tests on memory
## XML entity subst regression tests
## XML Namespaces regression tests
## Error cases regression tests
Error for ./test/errors/webdav.xml failed
File ./test/errors/webdav.xml generated an error
## Error cases stream regression tests
Error for ./test/errors/webdav.xml failed
File ./test/errors/webdav.xml generated an error
## Reader regression tests
.
.
.
## Catalog and Threads regression tests
Total 2748 tests, 2 errors, 0 leaks
==12391==
==12391== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 8 from 1)
==12391== malloc/free: in use at exit: 0 bytes in 0 blocks.
==12391== malloc/free: 3,032,159 allocs, 3,032,159 frees, 1,453,987,136
bytes allocated.
==12391== For counts of detected errors, rerun with: -v
==12391== All heap blocks were freed -- no leaks are possible.

2.__________________________________________________________________________________________________


Standalone execution generate a coredump:
libxml2-2.7.2$ ./runtest
## XML regression tests
## XML regression tests on memory
## XML entity subst regression tests
## XML Namespaces regression tests
## Error cases regression tests
Error for ./test/errors/webdav.xml failed
File ./test/errors/webdav.xml generated an error
## Error cases stream regression tests
Error for ./test/errors/webdav.xml failed
File ./test/errors/webdav.xml generated an error
## Reader regression tests
.
.
.
## Catalog and Threads regression tests
Erreur de segmentation

3.__________________________________________________________________________________________________


libxml2-2.7.2$ gdb ./runtest core
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...

warning: Can't read pathname for load map: Input/output error.
Reading symbols from /lib/libpthread.so.0...Reading symbols from
/usr/lib/debug/lib/libpthread-2.9.so...done.
done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/libdl.so.2...Reading symbols from
/usr/lib/debug/lib/libdl-2.9.so...done.
done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /lib/libm.so.6...Reading symbols from
/usr/lib/debug/lib/libm-2.9.so...done.
done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libc.so.6...Reading symbols from
/usr/lib/debug/lib/libc-2.9.so...done.
done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux-x86-64.so.2...Reading symbols from
/usr/lib/debug/lib/ld-2.9.so...done.
done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Core was generated by `./runtest'.
Program terminated with signal 11, Segmentation fault.
[New process 16279]
[New process 16280]
[New process 16194]
#0  __xmlParserInputBufferCreateFilename (URI=0x7faf88003648
"test/threads/acb.dtd", enc=XML_CHAR_ENCODING_NONE) at xmlIO.c:2472
2472                if (((z_stream *)context)->avail_in > 4) {
(gdb) bt
#0  __xmlParserInputBufferCreateFilename (URI=0x7faf88003648
"test/threads/acb.dtd", enc=XML_CHAR_ENCODING_NONE) at xmlIO.c:2472
#1  0x000000000040acac in xmlNewInputFromFile (ctxt=0x238e328,
filename=0x7faf88003648 "test/threads/acb.dtd") at parserInternals.c:1463
#2  0x000000000043484e in xmlNoNetExternalEntityLoader
(URL=0x7faf880034e8 "http://example.org/acb.dtd";, ID=0x0,
ctxt=0x238e328) at xmlIO.c:3934
#3  0x0000000000407d30 in testExternalEntityLoader (URL=0x7faf880034e8
"http://example.org/acb.dtd";, ID=0x0, ctxt=0x238e328) at runtest.c:234
#4  0x0000000000433f4f in xmlLoadExternalEntity (URL=<value optimized
out>, ID=0x0, ctxt=0x238e328) at xmlIO.c:3888
#5  0x00000000004d3f01 in xmlSAX2ResolveEntity (ctx=0x238e328,
publicId=0x0, systemId=<value optimized out>) at SAX2.c:512
#6  0x00000000004d3fc9 in xmlSAX2ExternalSubset (ctx=0x238e328,
name=0x7faf88002da7 "acb", ExternalID=0x0, SystemID=0x7faf8800bf80 "")
   at SAX2.c:402
#7  0x00000000004235e0 in xmlParseDocument (ctxt=0x238e328) at
parser.c:10083
#8  0x00000000004243d0 in xmlSAXParseFileWithData (sax=0x0,
filename=0x4e0ddd "test/threads/acb.xml", recovery=0, data=0x0) at
parser.c:13272
#9  0x00000000004034b2 in thread_specific_data (private_data=<value
optimized out>) at runtest.c:3875
#10 0x00007faf8fd9ef7a in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#11 0x00007faf8f475a4d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()
(gdb)



I hope this will help !
Thx for your lib :)




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]