I’ve written a ruby script that connects to a web service running
within our intranet via Soap4r. I developed the script on a Mac (OS
10.4.10, ruby 1.8.6 patch 0, soap4r 1.5.7, httpclient 2.1.0, net-ssh
1.1.2) and I have no problems on my machine. However when we deploy
the script to the production environment (a linux box with the same
ruby version and gems as I have on my development machine), we get
random segmentation faults:
/usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.0/lib/httpclient.rb:378
: [BUG] Segmentation fault
ruby 1.8.6 (2007-03-13) [i686-linux]
Aborted
-bash-2.05b$ echo $?
134
Here’s the code where the seg fault occurs:
353 def load_cacerts
354 file = File.join(File.dirname(FILE), ‘httpclient’,
‘cacert.p7s’)
355 if File.exist?(file)
356 require ‘openssl’
357 dist_cert =<<DIST_CERT
…
377__DIST_CERT__
378 p7 = OpenSSL::PKCS7.read_smime(File.open(file) { |f| f.read })
The last line is where things die.
Has anyone else seen this problem? What version of OpenSSL should we
be running for compatibility with Ruby’s OpenSSL library?
Any suggests on how to fix this would be much appreciated, since we
can’t roll these scripts out with these errors.
Thank you,
Mark