[ruby-core:117503] [Ruby master Bug#20426] crash on aarch64 linux when using fibers (regression with 3.3)

Issue #20426 has been reported by froydnj (Nathan Froyd). ---------------------------------------- Bug #20426: crash on aarch64 linux when using fibers (regression with 3.3) https://bugs.ruby-lang.org/issues/20426 * Author: froydnj (Nathan Froyd) * Status: Open * ruby -v: ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [aarch64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- We are seeing crashes when using Ruby 3.3 on aarch64-linux and the concurrent-ruby gem. We reduced the crashing testcase to: ``` Fiber.new {}.resume ``` which crashes on 3.3.0: ``` 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby-3.3.0$ ~/ruby-3-release/bin/ruby -v ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [aarch64-linux] 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby-3.3.0$ ~/ruby-3-release/bin/ruby -e 'Fiber.new {}.resume' -e:1: [BUG] Segmentation fault at 0x000baaaac8a27e30 ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [aarch64-linux] -- Control frame information ----------------------------------------------- c:0003 p:---- s:0010 e:000009 CFUNC :resume c:0002 p:0007 s:0006 E:0009f0 EVAL -e:1 [FINISH] c:0001 p:0000 s:0003 E:0021b0 DUMMY [FINISH] -- Ruby level backtrace information ---------------------------------------- -e:1:in `<main>' -e:1:in `resume' -- Threading information --------------------------------------------------- Total ractor count: 1 Ruby thread count for this ractor: 1 -- Machine register context ------------------------------------------------ x0: 0x0000aaaae077e910 x1: 0x0000aaaae08a8110 x2: 0x0000ffffd5d49ff0 x3: 0x0000ffff72bdef60 x4: 0x0000000000000004 x5: 0x0000ffff72bdf018 x6: 0x0000ffff72b5e000 x7: 0x0000ffff72bff000 x18: 0x0000000000000000 x19: 0x0000000000000000 x20: 0x0000000000000000 x21: 0x0000000000000000 x22: 0x0000000000000000 x23: 0x0000000000000000 x24: 0x0000000000000000 x25: 0x0000000000000000 x26: 0x0000000000000000 x27: 0x0000000000000000 x28: 0x0000000000000000 x29: 0x0000000000000000 sp: 0x0000ffff72bdf000 fau: 0x000baaaac8a27e30 -- C level backtrace information ------------------------------------------- Segmentation fault (core dumped) ``` We bisected to this commit, landed shortly before the release: https://github.com/ruby/ruby/commit/d9e5564ccd0e460b7685b786d21cf386b229e2a9 The parent revision: https://github.com/ruby/ruby/commit/9a3c49ee5d6dd3770c21ed8193e7efd64cd81a6e has no problems. Example output: ``` 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby$ ~/ruby-3-ok/bin/ruby -e 'Fiber.new {}.resume' 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby$ echo $? 0 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby$ ~/ruby-3-ok/bin/ruby -v ruby 3.3.0dev (2023-12-22T01:47:36Z v3_3_0~76 9a3c49ee5d) [aarch64-linux] 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby$ ~/ruby-3-ko/bin/ruby -e 'Fiber.new {}.resume' -e:1: [BUG] Segmentation fault at 0x0026aaaadfeb5698 ruby 3.3.0dev (2023-12-22T02:30:00Z v3_3_0~75 d9e5564ccd) [aarch64-linux] -- Control frame information ----------------------------------------------- c:0003 p:---- s:0010 e:000009 CFUNC :resume c:0002 p:0007 s:0006 E:0023c0 EVAL -e:1 [FINISH] c:0001 p:0000 s:0003 E:0004d0 DUMMY [FINISH] -- Ruby level backtrace information ---------------------------------------- -e:1:in `<main>' -e:1:in `resume' -- Threading information --------------------------------------------------- Total ractor count: 1 Ruby thread count for this ractor: 1 -- Machine register context ------------------------------------------------ x0: 0x0000aaaaefe05910 x1: 0x0000aaaaf00229b0 x2: 0x0000ffffe91efc00 x3: 0x0000ffff6a9fef50 x4: 0x0000000000000004 x5: 0x0000ffff6a9ff018 x6: 0x0000ffff6a97e000 x7: 0x0000ffff6aa1f000 x18: 0x0000000000000000 x19: 0x0000000000000000 x20: 0x0000000000000000 x21: 0x0000000000000000 x22: 0x0000000000000000 x23: 0x0000000000000000 x24: 0x0000000000000000 x25: 0x0000000000000000 x26: 0x0000000000000000 x27: 0x0000000000000000 x28: 0x0000000000000000 x29: 0x0000000000000000 sp: 0x0000ffff6a9ff000 fau: 0x0026aaaadfeb5698 -- C level backtrace information ------------------------------------------- Segmentation fault (core dumped) 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby$ ~/ruby-3-ko/bin/ruby -v ruby 3.3.0dev (2023-12-22T02:30:00Z v3_3_0~75 d9e5564ccd) [aarch64-linux] ``` -- https://bugs.ruby-lang.org/

Issue #20426 has been updated by ufuk (Ufuk Kayserilioglu). I believe this is the same issue as https://bugs.ruby-lang.org/issues/20085 which is fixed and back-ported, waiting for a release of 3.3.1. ---------------------------------------- Bug #20426: crash on aarch64 linux when using fibers (regression with 3.3) https://bugs.ruby-lang.org/issues/20426#change-107891 * Author: froydnj (Nathan Froyd) * Status: Open * ruby -v: ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [aarch64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- We are seeing crashes when using Ruby 3.3 on aarch64-linux and the concurrent-ruby gem. We reduced the crashing testcase to: ``` Fiber.new {}.resume ``` which crashes on 3.3.0: ``` 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby-3.3.0$ ~/ruby-3-release/bin/ruby -v ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [aarch64-linux] 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby-3.3.0$ ~/ruby-3-release/bin/ruby -e 'Fiber.new {}.resume' -e:1: [BUG] Segmentation fault at 0x000baaaac8a27e30 ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [aarch64-linux] -- Control frame information ----------------------------------------------- c:0003 p:---- s:0010 e:000009 CFUNC :resume c:0002 p:0007 s:0006 E:0009f0 EVAL -e:1 [FINISH] c:0001 p:0000 s:0003 E:0021b0 DUMMY [FINISH] -- Ruby level backtrace information ---------------------------------------- -e:1:in `<main>' -e:1:in `resume' -- Threading information --------------------------------------------------- Total ractor count: 1 Ruby thread count for this ractor: 1 -- Machine register context ------------------------------------------------ x0: 0x0000aaaae077e910 x1: 0x0000aaaae08a8110 x2: 0x0000ffffd5d49ff0 x3: 0x0000ffff72bdef60 x4: 0x0000000000000004 x5: 0x0000ffff72bdf018 x6: 0x0000ffff72b5e000 x7: 0x0000ffff72bff000 x18: 0x0000000000000000 x19: 0x0000000000000000 x20: 0x0000000000000000 x21: 0x0000000000000000 x22: 0x0000000000000000 x23: 0x0000000000000000 x24: 0x0000000000000000 x25: 0x0000000000000000 x26: 0x0000000000000000 x27: 0x0000000000000000 x28: 0x0000000000000000 x29: 0x0000000000000000 sp: 0x0000ffff72bdf000 fau: 0x000baaaac8a27e30 -- C level backtrace information ------------------------------------------- Segmentation fault (core dumped) ``` We bisected to this commit, landed shortly before the release: https://github.com/ruby/ruby/commit/d9e5564ccd0e460b7685b786d21cf386b229e2a9 The parent revision: https://github.com/ruby/ruby/commit/9a3c49ee5d6dd3770c21ed8193e7efd64cd81a6e has no problems. Example output: ``` 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby$ ~/ruby-3-ok/bin/ruby -e 'Fiber.new {}.resume' 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby$ echo $? 0 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby$ ~/ruby-3-ok/bin/ruby -v ruby 3.3.0dev (2023-12-22T01:47:36Z v3_3_0~76 9a3c49ee5d) [aarch64-linux] 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby$ ~/ruby-3-ko/bin/ruby -e 'Fiber.new {}.resume' -e:1: [BUG] Segmentation fault at 0x0026aaaadfeb5698 ruby 3.3.0dev (2023-12-22T02:30:00Z v3_3_0~75 d9e5564ccd) [aarch64-linux] -- Control frame information ----------------------------------------------- c:0003 p:---- s:0010 e:000009 CFUNC :resume c:0002 p:0007 s:0006 E:0023c0 EVAL -e:1 [FINISH] c:0001 p:0000 s:0003 E:0004d0 DUMMY [FINISH] -- Ruby level backtrace information ---------------------------------------- -e:1:in `<main>' -e:1:in `resume' -- Threading information --------------------------------------------------- Total ractor count: 1 Ruby thread count for this ractor: 1 -- Machine register context ------------------------------------------------ x0: 0x0000aaaaefe05910 x1: 0x0000aaaaf00229b0 x2: 0x0000ffffe91efc00 x3: 0x0000ffff6a9fef50 x4: 0x0000000000000004 x5: 0x0000ffff6a9ff018 x6: 0x0000ffff6a97e000 x7: 0x0000ffff6aa1f000 x18: 0x0000000000000000 x19: 0x0000000000000000 x20: 0x0000000000000000 x21: 0x0000000000000000 x22: 0x0000000000000000 x23: 0x0000000000000000 x24: 0x0000000000000000 x25: 0x0000000000000000 x26: 0x0000000000000000 x27: 0x0000000000000000 x28: 0x0000000000000000 x29: 0x0000000000000000 sp: 0x0000ffff6a9ff000 fau: 0x0026aaaadfeb5698 -- C level backtrace information ------------------------------------------- Segmentation fault (core dumped) 🍖 froydnj@froydnj-arm64-devbox(graviton):~/ruby$ ~/ruby-3-ko/bin/ruby -v ruby 3.3.0dev (2023-12-22T02:30:00Z v3_3_0~75 d9e5564ccd) [aarch64-linux] ``` -- https://bugs.ruby-lang.org/
participants (2)
-
froydnj (Nathan Froyd)
-
ufuk (Ufuk Kayserilioglu)