I recently cut over to using libxml instead of REXML for performance
reasons, but my program keeps seg faulting.  I ran across a posting on
using valgrind with ruby C libraries, and I thought I would try and
use it to help me debug the issue.  valgrind spits out the message
seen at the bottom of this email every 30 seconds or so.  (Internally,
I am creating an XML document about that frequently for an outside
service.)

I am running ruby 1.8.5 (ruby 1.8.5 (2006-08-25) [i686-linux]), on CentOS 5.0.

Does anyone have pointers on debugging this issue any further?  I am
running revision 277 of libxml from SVN.  (I just noticed that a new
version was released yesterday.)


Invalid read of size 4
   at 0x42293C4: ruby_xml_attr_free (ruby_xml_attr.c:15)
   by 0x8070649: garbage_collect (in /usr/bin/ruby)
   by 0x807098B: ruby_xmalloc (in /usr/bin/ruby)
   by 0x80787DC: rb_file_open_internal (in /usr/bin/ruby)
   by 0x8078A38: rb_io_open (in /usr/bin/ruby)
   by 0x807BCB7: rb_io_s_read (in /usr/bin/ruby)
   by 0x80553A5: call_cfunc (in /usr/bin/ruby)
   by 0x805DAB1: rb_call0 (in /usr/bin/ruby)
   by 0x805E6A0: rb_call (in /usr/bin/ruby)
   by 0x805C1B5: rb_eval (in /usr/bin/ruby)
   by 0x805CB98: rb_eval (in /usr/bin/ruby)
   by 0x805E2AA: rb_call0 (in /usr/bin/ruby)
   by 0x805E6A0: rb_call (in /usr/bin/ruby)
   by 0x805C1B5: rb_eval (in /usr/bin/ruby)
   by 0x805A859: rb_eval (in /usr/bin/ruby)
 Address 0x59FB87C is 20 bytes inside a block of size 48 free'd
   at 0x4004FDA: free (vg_replace_malloc.c:233)
   by 0xBCAAE7: xmlFreeProp (in /usr/lib/libxml2.so.2.6.26)
   by 0xBCAD2A: xmlFreePropList (in /usr/lib/libxml2.so.2.6.26)
   by 0xBCA929: xmlFreeNodeList (in /usr/lib/libxml2.so.2.6.26)
   by 0xBCA905: xmlFreeNodeList (in /usr/lib/libxml2.so.2.6.26)
   by 0xBCA905: xmlFreeNodeList (in /usr/lib/libxml2.so.2.6.26)
   by 0xBCA72A: xmlFreeDoc (in /usr/lib/libxml2.so.2.6.26)
   by 0x422D15D: ruby_xml_document_free (ruby_xml_document.c:412)
   by 0x8070649: garbage_collect (in /usr/bin/ruby)
   by 0x807098B: ruby_xmalloc (in /usr/bin/ruby)
   by 0x80787DC: rb_file_open_internal (in /usr/bin/ruby)
   by 0x8078A38: rb_io_open (in /usr/bin/ruby)
   by 0x807BCB7: rb_io_s_read (in /usr/bin/ruby)
   by 0x80553A5: call_cfunc (in /usr/bin/ruby)
   by 0x805DAB1: rb_call0 (in /usr/bin/ruby)

Invalid write of size 4
   at 0x42293C7: ruby_xml_attr_free (ruby_xml_attr.c:14)
   by 0x8070649: garbage_collect (in /usr/bin/ruby)
   by 0x807098B: ruby_xmalloc (in /usr/bin/ruby)
   by 0x80787DC: rb_file_open_internal (in /usr/bin/ruby)
   by 0x8078A38: rb_io_open (in /usr/bin/ruby)
   by 0x807BCB7: rb_io_s_read (in /usr/bin/ruby)
   by 0x80553A5: call_cfunc (in /usr/bin/ruby)
   by 0x805DAB1: rb_call0 (in /usr/bin/ruby)
   by 0x805E6A0: rb_call (in /usr/bin/ruby)
   by 0x805C1B5: rb_eval (in /usr/bin/ruby)
   by 0x805CB98: rb_eval (in /usr/bin/ruby)
   by 0x805E2AA: rb_call0 (in /usr/bin/ruby)
   by 0x805E6A0: rb_call (in /usr/bin/ruby)
   by 0x805C1B5: rb_eval (in /usr/bin/ruby)
   by 0x805A859: rb_eval (in /usr/bin/ruby)
 Address 0x59FB868 is 0 bytes inside a block of size 48 free'd
   at 0x4004FDA: free (vg_replace_malloc.c:233)
   by 0xBCAAE7: xmlFreeProp (in /usr/lib/libxml2.so.2.6.26)
   by 0xBCAD2A: xmlFreePropList (in /usr/lib/libxml2.so.2.6.26)
   by 0xBCA929: xmlFreeNodeList (in /usr/lib/libxml2.so.2.6.26)
   by 0xBCA905: xmlFreeNodeList (in /usr/lib/libxml2.so.2.6.26)
   by 0xBCA905: xmlFreeNodeList (in /usr/lib/libxml2.so.2.6.26)
   by 0xBCA72A: xmlFreeDoc (in /usr/lib/libxml2.so.2.6.26)
   by 0x422D15D: ruby_xml_document_free (ruby_xml_document.c:412)
   by 0x8070649: garbage_collect (in /usr/bin/ruby)
   by 0x807098B: ruby_xmalloc (in /usr/bin/ruby)
   by 0x80787DC: rb_file_open_internal (in /usr/bin/ruby)
   by 0x8078A38: rb_io_open (in /usr/bin/ruby)
   by 0x807BCB7: rb_io_s_read (in /usr/bin/ruby)
   by 0x80553A5: call_cfunc (in /usr/bin/ruby)



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

Reply via email to