[Ruby 1.9 - Bug #4966][Open] OpenSSL まわりで GC.stress で [BUG]

Issue #4966 has been reported by Makoto K…


Bug #4966: OpenSSL まわりで GC.stress で [BUG]

Author: Makoto K.
Status: Open
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]

私の環境で、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
[email protected]:/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.start_immediately = true
Thread.new{
Thread.current.abort_on_exception = true
loop{
ssls.accept
}
}
sock = TCPSocket.new(“127.0.0.1”, port.to_i)
ssl = OpenSSL::SSL::SSLSocket.new(sock)
ssl.connect

Issue #4966 has been updated by Makoto K…

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

Bug #4966: OpenSSL まわりで GC.stress で [BUG]

Author: Makoto K.
Status: Open
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]

私の環境で、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
[email protected]:/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.start_immediately = true
Thread.new{
Thread.current.abort_on_exception = true
loop{
ssls.accept
}
}
sock = TCPSocket.new(“127.0.0.1”, port.to_i)
ssl = OpenSSL::SSL::SSLSocket.new(sock)
ssl.connect

Issue #4966 has been updated by Shota F…

Status changed from Open to Closed


Bug #4966: OpenSSL まわりで GC.stress で [BUG]

Author: Makoto K.
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]

私の環境で、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
[email protected]:/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.start_immediately = true
Thread.new{
Thread.current.abort_on_exception = true
loop{
ssls.accept
}
}
sock = TCPSocket.new(“127.0.0.1”, port.to_i)
ssl = OpenSSL::SSL::SSLSocket.new(sock)
ssl.connect