📌
[Bug #20592] ruby:3.4.0-preview1 と alpine 3.20 の組み合わせで segv するバグ報告
[Bug #20592] Interrupting Addrinfo causes Segmentation fault on alpine
- ruby:3.4.0-preview1 と alpine 3.20 の組み合わせで以下のコードが segv するというバグ報告
# test.rb
require 'socket'
require 'timeout'
begin
Addrinfo.ip("1234.example.com")
rescue StandardError => e
puts e
end
sleep 10 # wait getaddrinfo to resolve and fail
/app # ruby test.rb
execution expired
[BUG] Segmentation fault at 0x0000000000000028
ruby 3.4.0preview1 (2024-05-16 master 9d69619623) [x86_64-linux-musl]
-- Machine register context ------------------------------------------------
RIP: 0x00007fefe4cd4886 RBP: 0x0000000000000001 RSP: 0x00007fefc95d3a10
RAX: 0x0000000000000001 RBX: 0x00007fefc94212e0 RCX: 0x00007fefc95d0b70
RDX: 0x0000000000000010 RDI: 0x0000000000000000 RSI: 0x00007fefc95d08f0
R8: 0x0000000000000000 R9: 0x0000000000000000 R10: 0x0000000000000000
R11: 0x0000000000000217 R12: 0x00007fefc9421340 R13: 0x00007fff5a0ec750
R14: 0x00007fefe4649b10 R15: 0x00007fefc95d3b38 EFL: 0x0000000000010202
-- Other runtime information -----------------------------------------------
- 内部の実装として
Addrinfo
を解放するときにfreeaddrinfo
関数を使っているんですが alpine だとその関数にNULL
を渡すとエラーになるらしい - 対応PR自体はでてますね
Discussion