Bug #4966

OpenSSL まわりで GC.stress で [BUG]

Added by Makoto Kishimoto almost 3 years ago. Updated almost 3 years ago.

[ruby-dev:44025]
Status:Closed
Priority:Normal
Assignee:-
Category:ext
Target version:1.9.3
ruby -v:ruby 1.9.3dev (2011-07-03 trunk 32373) [x86_64-freebsd8.2] Backport:

Description

私の環境で、trunk の r32371 以降で(ですが、おそらくその変更で、潜んでいたバグが顕在化した模様)以下のようなスクリプトで以下のように [BUG] になります

/usr/local/lib/ruby/1.9.1/openssl/ssl-internal.rb:162: [BUG] gc_sweep(): unknown data type 0x0(0x80134fdd8)

全メッセージとバックトレースは添付ファイルにしました

また、test-all が OpenSSL::TestSSL#test_parallel でこれを踏んで途中で止まります

$ uname -a
FreeBSD norikura.localdomain 8.2-STABLE FreeBSD 8.2-STABLE #0 r223459: Thu Jun 30 19:24:47 JST 2011 ksmakoto@norikura.localdomain:/export/obj/usr/src/sys/NORIKURA20110630 amd64

$ cat foo.rb
require "openssl"
require "socket"

GC.stress = true

tcps = nil
port = 20443
begin
tcps = TCPServer.new("127.0.0.1", port)
rescue Errno::EADDRINUSE
port += 1
retry
end
ssls = OpenSSL::SSL::SSLServer.new(tcps, OpenSSL::SSL::SSLContext.new)
ssls.startimmediately = true
Thread.new{
Thread.current.abort
onexception = true
loop{
ssls.accept
}
}
sock = TCPSocket.new("127.0.0.1", port.to
i)
ssl = OpenSSL::SSL::SSLSocket.new(sock)
ssl.connect

typescript.txt Magnifier - バックトレース (9.05 KB) Makoto Kishimoto, 07/03/2011 05:45 PM

History

#1 Updated by Makoto Kishimoto almost 3 years ago

r32395 で直りました。クローズお願いします

#2 Updated by Shota Fukumori almost 3 years ago

  • Status changed from Open to Closed

Also available in: Atom PDF