1) Failure:
test_parse_error(TestParserContext) [./test/tc_parser_context.rb:111]:
<true> expected but was
<false>.

157 tests, 740 assertions, 1 failures, 0 errors
/usr/lib/ruby/1.8/test/unit.rb:278: [BUG] Segmentation fault
ruby 1.8.6 (2007-09-24) [x86_64-linux]


It looks like the segmentation fault is happening at the program's end. Which leads me to suspects it the XPathObject pointer (Xpath object are returned from Document#find and Node#find). That the one where a document is freed before any XpathObjects are freed.

The simple solution is:

nodes = document.find('/foo')
nodes = nil
GC.start

Which is documented under Document#find.

A "real" solution would involve XPath objects registering themselves with documents, and documents checking them when freed. The reason is that Ruby calls free functions in random order. See discussion here:

http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-core/17725?17500-17840+split-mode-vertical

Anyway, would be worth updating the xpath test to conform to the code style above and see if those really are the issues.

The other thing to do, is create a debug build, enable crash dump files, and when the seg fault happens send in the stack trace. That would verify my theory or not.

Charlie


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

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

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

Reply via email to