Feature #405
closedssl.rb:31: [BUG] Bus Error
Description
=begin
ssl.rb:31: [BUG] Bus Error
ruby 1.8.7 (2008-06-20 patchlevel 22) [i686-darwin9.4.0]
=end
Updated by shyouhei (Shyouhei Urabe) over 16 years ago
=begin
Hello, what's that ssl.rb? Can we get one?
=end
Updated by pirkka (Pirkka Hartikainen) about 16 years ago
=begin
/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)
=end
Updated by evn (Evan W) about 16 years ago
=begin
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:
DEFAULT_CERT_STORE = OpenSSL::X509::Store.new
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
new'"
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
module:SSL'"
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
<top (required)>'"
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
<top (required)>'"
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
<top (required)>'"
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
<top (required)>'"
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
<top (required)>'"
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
<top (required)>'"
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
process_args'"
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
run'"
DBG> : "/opt/local/bin/gem19:24:in `'"
-- backtrace of native function call (Use addr2line) --
0x1148f6
0x2b48c
0x2b4cb
0xbab8b
0x924d309b
0xffffffff
Abort trap
=end
Updated by shyouhei (Shyouhei Urabe) almost 16 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]
=begin
=end
Updated by mattgrayson (Matt G) almost 16 years ago
=begin
Running into same issue:
ssl.rb:31: [BUG] Bus Error
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9.6.0]
=end
Updated by mdarby (Matt Darby) almost 16 years ago
=begin
I too am having the same issue suddenly:
=> Booting Mongrel
=> Rails 2.3.0 application starting on http://0.0.0.0:3000
/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
=end
Updated by chaslemley (Chas Lemley) almost 16 years ago
=begin
Do you have the following gems installed?
thin
eventmachine
If you do, try uninstalling them and see if things work. It worked for me.
=end
Updated by expertseries (Matt Gardner) over 15 years ago
=begin
Removing
thin
eventmachine
Worked for me as well.
Thanks Chas.
=end
Updated by rogerdpack (Roger Pack) over 15 years ago
=begin
why do thin and eventmachine affect rubygems here? Have you tried the latest version of eventmachine?
Thanks.
-=r
=end
Updated by docwhat (Christian Höltje) over 15 years ago
=begin
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.
Ciao!
=end
Updated by docwhat (Christian Höltje) over 14 years ago
=begin
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.
=end
Updated by docwhat (Christian Höltje) over 14 years ago
=begin
I'm no expert with openssl, but you can see in code like this that it expects a NULL or a valid STACK:
http://openssl.sourcearchive.com/documentation/0.9.8g/ex__data_8c-source.html
Looking at the code, I don't see ruby setting the STACK on initialization (GetX509Store), so I figured it should be NULL.
=end
Updated by docwhat (Christian Höltje) over 14 years ago
=begin
In 1.9.1 this was fixed in r27064.
=end
Updated by shyouhei (Shyouhei Urabe) over 12 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) over 5 years ago
- Status changed from Feedback to Closed