Folks,
I have a reproducible crash using libxml.  I'd like some suggestions on
how I can track this down as it's become a show-stopper for my current
project.  This is from a libxml gem created from svn this morning.

I can write and debug C but I'd like some suggestions on what to look
for, and what to try.  I am inclined to modify all calls to free() to
zero or set the allocated memory chunk before freeing it in the hope
that this will make it obvious where things are breaking.  Having not
hacked ruby before I am not sure how easy this will be.  I'm also
wondering whether any of the standard C memory testing tools can be
easily incorporated into the ruby build.

I'd welcome any suggestions/random thoughts/shared experiences/anything
from anyone at this stage :-)

Here is the backtrace, in case it helps.

*** glibc detected *** ruby: double free or corruption (fasttop):
0x081f98d8 ***
======= Backtrace: =========
/lib/libc.so.6[0xb7d08824]
/lib/libc.so.6(cfree+0x90)[0xb7d0be90]
/usr/lib/libruby1.8.so.1.8(ruby_xfree+0x37)[0xb7e99d67]
/usr/lib/libxml2.so.2(xmlFreeNodeList+0x11d)[0xb7b0eadd]
/usr/lib/libxml2.so.2(xmlFreeProp+0x52)[0xb7b0ec12]
/usr/lib/libxml2.so.2(xmlFreePropList+0x1b)[0xb7b0ee8b]
/usr/lib/libxml2.so.2(xmlFreeNodeList+0xba)[0xb7b0ea7a]
/usr/lib/libxml2.so.2(xmlFreeNodeList+0x96)[0xb7b0ea56]
/usr/lib/libxml2.so.2(xmlFreeNode+0x7b)[0xb7b0ef1b]
/usr/lib/ruby/1.8/i486-linux/xml/libxml_so.so(ruby_xml_node_free
+0x5d)[0xb7c0abdd]
/usr/lib/libruby1.8.so.1.8(rb_gc_call_finalizer_at_exit
+0xa7)[0xb7e9a027]
/usr/lib/libruby1.8.so.1.8[0xb7e802a7]
/usr/lib/libruby1.8.so.1.8(ruby_cleanup+0x103)[0xb7e88293]
/usr/lib/libruby1.8.so.1.8(ruby_stop+0x1d)[0xb7e8839d]
/usr/lib/libruby1.8.so.1.8[0xb7e93181]
ruby[0x80486bd]
/lib/libc.so.6(__libc_start_main+0xe0)[0xb7cb5030]
ruby[0x80485e1]
======= Memory map: ========
08048000-08049000 r-xp 00000000 03:01 21071      /usr/bin/ruby1.8
08049000-0804a000 rw-p 00000000 03:01 21071      /usr/bin/ruby1.8
0804a000-088f6000 rw-p 0804a000 00:00 0          [heap]
b7800000-b7821000 rw-p b7800000 00:00 0 
b7821000-b7900000 ---p b7821000 00:00 0 
b79de000-b79e6000 rw-p b79de000 00:00 0 
b79e9000-b79f3000 r-xp 00000000 03:01 472100     /lib/libgcc_s.so.1
b79f3000-b79f4000 rw-p 00009000 03:01 472100     /lib/libgcc_s.so.1
b7a07000-b7a56000 r-xp 00000000 03:01
19373      /usr/lib/libgcrypt.so.11.2.3
b7a56000-b7a58000 rw-p 0004f000 03:01
19373      /usr/lib/libgcrypt.so.11.2.3
b7a58000-b7a68000 r-xp 00000000 03:01
17836      /usr/lib/libexslt.so.0.8.13
b7a68000-b7a69000 rw-p 0000f000 03:01
17836      /usr/lib/libexslt.so.0.8.13
b7a69000-b7a9c000 r-xp 00000000 03:01
21872      /usr/lib/libxslt.so.1.1.21
b7a9c000-b7a9d000 rw-p 00032000 03:01
21872      /usr/lib/libxslt.so.1.1.21
b7a9d000-b7ab1000 r-xp 00000000 03:01 233293     /lib/libnsl-2.6.so
b7ab1000-b7ab3000 rw-p 00013000 03:01 233293     /lib/libnsl-2.6.so
b7ab3000-b7ab5000 rw-p b7ab3000 00:00 0 
b7ab5000-b7ac9000 r-xp 00000000 03:01
18146      /usr/lib/libz.so.1.2.3.3
b7ac9000-b7aca000 rw-p 00013000 03:01
18146      /usr/lib/libz.so.1.2.3.3
b7aca000-b7be1000 r-xp 00000000 03:01
16657      /usr/lib/libxml2.so.2.6.29
b7be1000-b7be6000 rw-p 00116000 03:01
16657      /usr/lib/libxml2.so.2.6.29
b7be6000-b7be8000 rw-p b7be6000 00:00 0 
b7be8000-b7bfa000 rw-p b7be8000 00:00 0 
b7bfa000-b7c14000 r-xp 00000000 03:01
146364     /usr/lib/ruby/1.8/i486-linux/xml/libxml_so.so
b7c14000-b7c15000 rw-p 0001a000 03:01
146364     /usr/lib/ruby/1.8/i486-linux/xml/libxml_so.so
b7c15000-b7c9f000 rw-p b7c15000 00:00 0 
b7c9f000-b7de0000 r-xp 00000000 03:01 233283     /lib/libc-2.6.so
b7de0000-b7de1000 r--p 00141000 03:01 233283     /lib/libc-2.6.so
b7de1000-b7de3000 rw-p 00142000 03:01 233283     /lib/libc-2.6.so
b7de3000-b7de6000 rw-p b7de3000 00:00 0 
b7de6000-b7e0b000 r-xp 00000000 03:01 233287     /lib/libm-2.6.so
b7e0b000-b7e0d000 rw-p 00024000 03:01 233287     /lib/libm-2.6.so
b7e0d000-b7e12000 r-xp 00000000 03:01 233285     /lib/libcrypt-2.6.so
b7e12000-b7e14000 rw-p 00004000 03:01 233285     /lib/libcrypt-2.6.so
b7e14000-b7e3b000 rw-p b7e14000 00:00 0 
b7e3b000-b7e3d000 r-xp 00000000 03:01 233286     /lib/libdl-2.6.so
b7e3d000-b7e3f000 rw-p 00001000 03:01 233286     /lib/libdl-2.6.so
b7e3f000-b7e40000 rw-p b7e3f000 00:00 0 
b7e40000-b7e53000 r-xp 00000000 03:01 233301     /lib/libpthread-2.6.so
b7e53000-b7e55000 rw-p 00012000 03:01 233301     /lib/libpthread-2.6.so
b7e55000-b7e57000 rw-p b7e55000 00:00 0 
b7e57000-b7f14000 r-xp 00000000 03:01
29683      /usr/lib/libruby1.8.so.1.8.6
b7f14000-b7f17000 rw-p 000bc000 03:01
29683      /usr/lib/libruby1.8.so.1.8.6
b7f17000-b7f26000 rw-p b7f17000 00:00 0 
b7f28000-b7f2a000 rw-p b7f28000 00:00 0 
b7f2a000-b7f2d000 r-xp 00000000 03:01
18898      /usr/lib/libgpg-error.so.0.3.0
b7f2d000-b7f2e000 rw-p 00002000 03:01
18898      /usr/lib/libgpg-error.so.0.3.0
b7f2e000-b7f33000 r-xp 00000000 03:01
146769     /usr/lib/ruby/1.8/i486-linux/xml/libxslt.so
b7f33000-b7f34000 rw-p 00004000 03:01
146769     /usr/lib/ruby/1.8/i486-linux/xml/libxslt.so
b7f34000-b7f38000 r-xp 00000000 03:01
150566     /usr/lib/ruby/1.8/i486-linux/stringio.so
b7f38000-b7f39000 rw-p 00003000 03:01
150566     /usr/lib/ruby/1.8/i486-linux/stringio.so
b7f39000-b7f3b000 rw-p b7f39000 00:00 0 
b7f3b000-b7f57000 r-xp 00000000 03:01 991671     /lib/ld-2.6.so
b7f57000-b7f59000 rw-p 0001b000 03:01 991671     /lib/ld-2.6.so
bf9f5000-bfa57000 rw-p bf9f5000 00:00 0          [stack]
ffffe000-fffff000 ---p 00000000 00:00 0          [vdso]
Aborted


__
Marc

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
libxml-devel mailing list
libxml-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/libxml-devel

Reply via email to