Feature #405

ssl.rb:31: [BUG] Bus Error

Added by Anonymous almost 4 years ago. Updated 22 days ago.

[ruby-core:18121]
Status:Feedback Start date:08/05/2008
Priority:Normal Due date:
Assignee:matz (Yukihiro Matsumoto) % Done:

0%

Category:ext
Target version:-

Description

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

Related issues

related to ruby-trunk - Bug #1678: uninitialized value in ossl_x509store_initialize causes o... Closed 06/23/2009
related to ruby-trunk - Bug #1142: /opt/ruby19/lib/ruby19/1.9.1/openssl/ssl.rb:31: [BUG] Bus... Rejected 02/12/2009

History

Updated by shyouhei (Shyouhei Urabe) almost 4 years ago

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

Updated by pirkka (Pirkka Hartikainen) over 3 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 3 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:

      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    <dummy toplevel>: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 `<main>'"
-- backtrace of native function call (Use addr2line) --
0x1148f6
0x2b48c
0x2b4cb
0xbab8b
0x924d309b
0xffffffff
-------------------------------------------------------


Abort trap

Updated by shyouhei (Shyouhei Urabe) over 3 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 3 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) about 3 years ago

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

Updated by chaslemley (Chas Lemley) about 3 years ago

Do you have the following gems installed?

thin
eventmachine

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

Updated by expertseries (Matt Gardner) about 3 years ago

Removing

thin
eventmachine

Worked for me as well.
Thanks Chas.

Updated by rogerdpack (Roger Pack) about 3 years ago

why do thin and eventmachine affect rubygems here?  Have you tried the latest version of eventmachine?
Thanks.
-=r

Updated by docwhat (Christian Höltje) almost 3 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.

Ciao!

Updated by marcandre (Marc-Andre Lafortune) over 2 years ago

  • Category set to ext

Updated by docwhat (Christian Höltje) about 2 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 2 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:
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.

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

In 1.9.1 this was fixed in r27064.

Updated by shyouhei (Shyouhei Urabe) 22 days ago

  • Tracker changed from Bug to Feature
  • Description updated (diff)
Seems r27064 has already been applied. Does this still occur?

Also available in: Atom PDF