Project

General

Profile

Feature #405

ssl.rb:31: [BUG] Bus Error

Added by Anonymous almost 11 years ago. Updated about 7 years ago.

Status:
Feedback
Priority:
Normal
[ruby-core:18121]

Description

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


Related issues

Related to Ruby trunk - Bug #1678: uninitialized value in ossl_x509store_initialize causes occasional segfaultClosed06/23/2009Actions
Related to Ruby trunk - Bug #1142: /opt/ruby19/lib/ruby19/1.9.1/openssl/ssl.rb:31: [BUG] Bus ErrorRejected02/12/2009Actions

History

#1

Updated by shyouhei (Shyouhei Urabe) almost 11 years ago

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

#2

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

#3

Updated by evn (Evan W) over 10 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
'"
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
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

#4

Updated by shyouhei (Shyouhei Urabe) over 10 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

#5

Updated by mattgrayson (Matt G) about 10 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

#6

Updated by mdarby (Matt Darby) about 10 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

#7

Updated by chaslemley (Chas Lemley) about 10 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

#8

Updated by expertseries (Matt Gardner) about 10 years ago

=begin
Removing

thin
eventmachine

Worked for me as well.
Thanks Chas.
=end

#9

Updated by rogerdpack (Roger Pack) about 10 years ago

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

#10

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

#11

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

  • Category set to ext

=begin

=end

#12

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

#13

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

#14

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

=begin
In 1.9.1 this was fixed in r27064.
=end

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