👏
[Bug #20668] shareable_constant_value: 関連でクラッシュするバグ報告
[Bug #20668] [3.3] shareable_constant_value: literal crash
- 以下のようなコードを実行すると
shareable_constant_value
関連で Ruby がクラッシュするというバグ報告
# shareable_constant_value: literal
FORM_STRATEGIES = {
'product' => Object,
'storefront_password' => String,
'contact' => Class,
}
/tmp/vQ8KjQT/16: [BUG] Segmentation fault at 0x0000000f00000006
ruby 3.3.3 (2024-06-12 revision f1c7b6f435) [x86_64-linux]
-- Control frame information -----------------------------------------------
c:0001 p:0000 s:0003 E:0002c0 DUMMY [FINISH]
-- Threading information ---------------------------------------------------
Total ractor count: 1
Ruby thread count for this ractor: 1
-- Machine register context ------------------------------------------------
RIP: 0x0000768f705bb61f RBP: 0x000055c2bc4a9a38 RSP: 0x00007ffeb6846b90
RAX: 0x0000768f54773d78 RBX: 0x000055c2bc4a59f0 RCX: 0x0000000000000000
RDX: 0x0000000f00000006 RDI: 0x000055c2bc26c540 RSI: 0x000055c2bc26d300
R8: 0x0000768f54773d78 R9: 0x000055c2bc4a9998 R10: 0x000055c2bc4a98e0
R11: 0x000055c2bc4a98b8 R12: 0x000055c2bc320190 R13: 0x000055c2bc4a98c0
R14: 0x00007ffeb6846c58 R15: 0x0000768f54773d78 EFL: 0x0000000000010206
...
- Ruby 3.2 や開発版の Ruby 3.4 では再現せずに Ruby 3 系でのみ再現するみたいでね
- 上記のコードだと
FORM_STRATEGIES
のいずれかの値を削除したりクラスオブジェクトじゃない場合はクラッシュしないのでエッジケースではあるのかなー
Discussion