Feature #405

ssl.rb:31: [BUG] Bus Error

Added by Anonymous almost 12 years ago. Updated 10 months ago.



ssl.rb:31: [BUG] Bus Error
ruby 1.8.7 (2008-06-20 patchlevel 22) [i686-darwin9.4.0]

Related issues

Related to Ruby master - Bug #1678: uninitialized value in ossl_x509store_initialize causes occasional segfaultClosedgotoyuzo (GOTOU Yuuzou)06/23/2009Actions
Related to Ruby master - Bug #1142: /opt/ruby19/lib/ruby19/1.9.1/openssl/ssl.rb:31: [BUG] Bus ErrorRejectedmame (Yusuke Endoh)02/12/2009Actions

Updated by shyouhei (Shyouhei Urabe) almost 12 years ago

Hello, what's that ssl.rb? Can we get one?


Updated by pirkka (Pirkka Hartikainen) almost 12 years ago

/usr/local/lib/ruby/1.8/openssl/ssl.rb:31: [BUG] Bus Error
ruby 1.8.7 (2008-06-20 patchlevel 22) [i686-darwin9.3.0]

i'm not the original reporter of the bug, but looks like i'm getting the same error when compiling routes in merb (the web app framework)


Updated by evn (Evan W) over 11 years ago

This bug still occurs on ruby-1.9.1-preview1 on OS X Leopard/Intel 32-bit.

$ ruby19 -v
ruby 1.9.1 (2008-10-28 revision 19983) [i386-darwin9.5.0]
$ uname -a
Darwin mackenzie.local 9.5.0 Darwin Kernel Version 9.5.0: Wed Sep 3 11:29:43 PDT 2008; root:xnu-1228.7.58~1/RELEASE_I386 i386
$ sudo port list openssl
openssl @0.9.8i devel/openssl

Line 31 in question from ssl.rb is:


Setting line 26 to:

:verify_mode => OpenSSL::SSL::VERIFY_NONE,

and commenting out lines 31-35 avoids the problem with RubyGems, at least.

Previous backtrace was:

$ sudo gem19 install echoe
/opt/local/lib/ruby19/1.9.1/openssl/ssl.rb:31: [BUG] Bus Error
ruby 1.9.1 (2008-10-28 revision 19983) [i386-darwin9.5.0]

-- control frame ----------
c:0033 p:---- s:0107 b:0107 l:000106 d:000106 CFUNC :initialize
c:0032 p:---- s:0105 b:0105 l:000104 d:000104 CFUNC :new
c:0031 p:0063 s:0102 b:0102 l:000101 d:000101 CLASS /opt/local/lib/ruby19/1.9.1/openssl/ssl.rb:31
c:0030 p:0011 s:0100 b:0100 l:000099 d:000099 CLASS /opt/local/lib/ruby19/1.9.1/openssl/ssl.rb:23
c:0029 p:0011 s:0098 b:0098 l:000097 d:000097 CLASS /opt/local/lib/ruby19/1.9.1/openssl/ssl.rb:22
c:0028 p:0045 s:0096 b:0096 l:000095 d:000095 TOP /opt/local/lib/ruby19/1.9.1/openssl/ssl.rb:21
c:0027 p:---- s:0094 b:0094 l:000093 d:000093 FINISH :set_encoding
c:0026 p:---- s:0092 b:0092 l:000091 d:000091 CFUNC :require
c:0025 p:0059 s:0088 b:0088 l:000087 d:000087 TOP /opt/local/lib/ruby19/1.9.1/openssl.rb:22
c:0024 p:---- s:0086 b:0086 l:000085 d:000085 FINISH :set_encoding
c:0023 p:---- s:0084 b:0084 l:000083 d:000083 CFUNC :require
c:0022 p:0023 s:0080 b:0080 l:000079 d:000079 TOP /opt/local/lib/ruby19/1.9.1/rubygems/gem_openssl.rb:33
c:0021 p:---- s:0077 b:0077 l:000076 d:000076 FINISH :set_encoding
c:0020 p:---- s:0075 b:0075 l:000074 d:000074 CFUNC :require
c:0019 p:0023 s:0071 b:0071 l:000070 d:000070 TOP /opt/local/lib/ruby19/1.9.1/rubygems/security.rb:8
c:0018 p:---- s:0069 b:0069 l:000068 d:000068 FINISH :set_encoding
c:0017 p:---- s:0067 b:0067 l:000066 d:000066 CFUNC :require
c:0016 p:0023 s:0063 b:0063 l:000062 d:000062 TOP /opt/local/lib/ruby19/1.9.1/rubygems/install_update_options.rb:8
c:0015 p:---- s:0061 b:0061 l:000060 d:000060 FINISH :set_encoding
c:0014 p:---- s:0059 b:0059 l:000058 d:000058 CFUNC :require
c:0013 p:0035 s:0055 b:0055 l:000054 d:000054 TOP /opt/local/lib/ruby19/1.9.1/rubygems/commands/install_command.rb:3
c:0012 p:---- s:0053 b:0053 l:000052 d:000052 FINISH :set_encoding
c:0011 p:---- s:0051 b:0051 l:000050 d:000050 CFUNC :require
c:0010 p:0059 s:0047 b:0047 l:000043 d:000046 BLOCK /opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:140
c:0009 p:0075 s:0044 b:0044 l:000043 d:000043 METHOD /opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:132
c:0008 p:0055 s:0038 b:0036 l:000035 d:000035 METHOD /opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:65
c:0007 p:0111 s:0032 b:0032 l:000031 d:000031 METHOD /opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:118
c:0006 p:0180 s:0027 b:0027 l:000026 d:000026 METHOD /opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:104
c:0005 p:0013 s:0021 b:0021 l:000020 d:000020 METHOD /opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:75
c:0004 p:0089 s:0016 b:0016 l:000015 d:000015 METHOD /opt/local/lib/ruby19/1.9.1/rubygems/gem_runner.rb:39
c:0003 p:0207 s:0009 b:0009 l:000008 d:000008 TOP /opt/local/bin/gem19:24
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH :inherited
c:0001 p:0000 s:0002 b:0002 l:000001 d:000001 TOP :20204

DBG> : "/opt/local/lib/ruby19/1.9.1/openssl/ssl.rb:31:in initialize'"
DBG> : "/opt/local/lib/ruby19/1.9.1/openssl/ssl.rb:31:in
DBG> : "/opt/local/lib/ruby19/1.9.1/openssl/ssl.rb:31:in <class:SSLContext>'"
DBG> : "/opt/local/lib/ruby19/1.9.1/openssl/ssl.rb:23:in
DBG> : "/opt/local/lib/ruby19/1.9.1/openssl/ssl.rb:22:in <module:OpenSSL>'"
DBG> : "/opt/local/lib/ruby19/1.9.1/openssl/ssl.rb:21:in
DBG> : "/opt/local/lib/ruby19/1.9.1/openssl.rb:22:in require'"
DBG> : "/opt/local/lib/ruby19/1.9.1/openssl.rb:22:in
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/gem_openssl.rb:33:in require'"
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/gem_openssl.rb:33:in
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/security.rb:8:in require'"
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/security.rb:8:in
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/install_update_options.rb:8:in require'"
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/install_update_options.rb:8:in
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/commands/install_command.rb:3:in require'"
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/commands/install_command.rb:3:in
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:140:in require'"
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:140:in
rescue in load_and_instantiate'"
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:132:in load_and_instantiate'"
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:65:in
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:118:in find_command'"
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:104:in
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/command_manager.rb:75:in run'"
DBG> : "/opt/local/lib/ruby19/1.9.1/rubygems/gem_runner.rb:39:in
DBG> : "/opt/local/bin/gem19:24:in `'"
-- backtrace of native function call (Use addr2line) --

Abort trap



Updated by shyouhei (Shyouhei Urabe) over 11 years ago

  • Status changed from Open to Feedback
  • Assignee set to matz (Yukihiro Matsumoto)
  • ruby -v set to ruby 1.8.7 (2008-06-20 patchlevel 22) [i686-darwin9.4.0]




Updated by mattgrayson (Matt G) over 11 years ago

Running into same issue:

ssl.rb:31: [BUG] Bus Error
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9.6.0]


Updated by mdarby (Matt Darby) over 11 years ago

I too am having the same issue suddenly:

=> Booting Mongrel
=> Rails 2.3.0 application starting on
/usr/local/lib/ruby/1.8/openssl/ssl.rb:31: [BUG] Bus Error
ruby 1.8.7 (2008-08-08 patchlevel 71) [i686-darwin9.4.0]

[1] 404 abort ./script/server

OpenSSL 0.9.7l 28 Sep 2006


Updated by chaslemley (Chas Lemley) over 11 years ago

Do you have the following gems installed?


If you do, try uninstalling them and see if things work. It worked for me.


Updated by expertseries (Matt Gardner) over 11 years ago



Worked for me as well.
Thanks Chas.


Updated by rogerdpack (Roger Pack) over 11 years ago

why do thin and eventmachine affect rubygems here? Have you tried the latest version of eventmachine?


Updated by docwhat (Christian Höltje) about 11 years ago

Bug #1678 has an excellent description of the problem, including valgrind info.

He has a (probably not correct) work-around that will let people get work done.

re: why removing certain gems works? Probably because it shifted memory locations around enough to allow the references be valid.



Updated by marcandre (Marc-Andre Lafortune) almost 11 years ago

  • Category set to ext




Updated by docwhat (Christian Höltje) about 10 years ago

Removing eventmachine fixes the problem because eventmachine loads openssl. If you don't load anything that uses openssl, then you won't see the problem.


Updated by docwhat (Christian Höltje) about 10 years ago

I'm no expert with openssl, but you can see in code like this that it expects a NULL or a valid STACK:

Looking at the code, I don't see ruby setting the STACK on initialization (GetX509Store), so I figured it should be NULL.



Updated by docwhat (Christian Höltje) about 10 years ago

In 1.9.1 this was fixed in r27064.

Updated by shyouhei (Shyouhei Urabe) about 8 years ago

  • Tracker changed from Bug to Feature
  • Description updated (diff)

Seems r27064 has already been applied. Does this still occur?


Updated by jeremyevans0 (Jeremy Evans) 10 months ago

  • Status changed from Feedback to Closed

Also available in: Atom PDF