ruby-rdf / rdf-rdfxml

Ruby RDF/XML reader/writer for RDF.rb.
http://rubygems.org/gems/rdf-rdfxml
The Unlicense
17 stars 7 forks source link

Segmentation fault in Rails app #17

Closed mstroming closed 12 years ago

mstroming commented 12 years ago

Hi there,

Any ideas are very much appreciated. Here's the issue:

I've seen the following segmentation faults on a RHEL 5 server after the Rails app is running for a few hours. Using the same data the gem seems to have an issue with does not replicate the issue. It seems to happen after a given amount of time, but the memory on the server is fine and the Rails process runs fine up until that point. The fault has occurred at two different lines.

rdf-rdfxml-0.3.5/lib/rdf/rdfxml/reader.rb:557: [BUG] Segmentation fault rdf-rdfxml-0.3.5/lib/rdf/rdfxml/reader.rb:601: [BUG] Segmentation fault

I'm running RHEL5 with the most recent version of the libxml2 system library. Here are the applicable gem versions I'm using.

rdf (0.3.5.2) rdf-rdfxml (0.3.5) nokogiri (1.5.3)

Thanks!

evilensky commented 12 years ago

Hi All, To add more details to this issue:

Nokogiri (1.5.3)

warnings: []
nokogiri: 1.5.3
ruby:
  version: 1.9.3
  platform: i686-linux
  description: ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
  engine: ruby
libxml:
  binding: extension
  compiled: 2.8.0
  loaded: 2.8.0

ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux] 2.6.18-274.7.1.el5 #1 SMP i686 i686 i386 GNU/Linux

gkellogg commented 12 years ago

Thanks for the report. I suspect that some optimizations in RDF.rb are. It working well with 1.9.3. Have you tried it with 1.9.2?

mstroming commented 12 years ago

Thanks for the reply. We haven't tried with 1.9.2 because other parts of the application require 1.9.3. We plan on running this using nokogiri 1.5.4 to see if that helps.

gkellogg commented 12 years ago

I just pushed up version 0.3.7 of RDF.rb. Try updating to that and seeing if it works. RDF.rb uses ObjectSpec to have provide for garbage-collecatble storage to reduce object-creation overhead. It seems to have changed sufficiently in 1.9.3 that it caused some random failures after garbage collection. I made some improvements that seem to have fixed the errors I was seeing.

I'll close the issue, but feel free to open it back up if it doesn't do the trick. Or, create a bug on http://github.com/ruby-rdf/rdf, as that's where the problem lies.

mstroming commented 12 years ago

It seems like this fixed the issue. Thanks very much!