[libxml-devel] [ libxml-Bugs-8337 ] Opening many files causes segfault on fbsd-amd64

Sean Chittenden sean at chittenden.org
Fri Jul 11 12:30:34 EDT 2008


>>> So I don't see this as a bug in the libxml bindings.
>> Maybe you are right, but if I change XML::Document.file("test.xml")
>> to File.open("test.xml"), I won't run out of file handles.
>> I wonder what makes the difference...
>
> Well, File.open is a ruby method while Document.open is a libxml  
> method.  Perhaps Ruby has some smarts built into it with File.open  
> and the garbage collector.

Ruby does the same thing libxml now does, it calls the GC whenever  
errno is set to EMFILE or ENFILE.

>> And if I remember correctly, even the original test code with
>> libxml-ruby 3.8 did not run out of file handles on 32bit intel  
>> machines
>> either - the reported segfault only affected the amd64 (and maybe
>> other) architecture.
>
> Interesting.  Could be a difference in libxml, or maybe a difference  
> in the bindings.  Would have to check svn to know for sure.


I don't know why that would be... maybe on the other machine you had  
your limits set higher and the GC always kicked in.  The test code  
uses sh -c `ulimit -n` to make sure that things run out of FDs.  -sc

--
Sean Chittenden
sean at chittenden.org





More information about the libxml-devel mailing list