
Issue #19397 has been updated by mame (Yusuke Endoh).
I am using Centos 7.8 and further investigations shows that the problem occurs when soft and hard limits are equal. In our case 157286400.
Our CI list includes CentOS 7.9, where the test passes successfully. I tried `ulimit -s 8192` to set equal soft and hard limits for stack, and ruby starts successfully. ``` $ cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) $ ulimit -s 8192 $ grep stack /proc/self/limits Max stack size 8388608 8388608 bytes $ ruby -v ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux] $ ruby -h Usage: /home/chkbuild/.rbenv/versions/3.1.2/bin/ruby [switches] [--] [programfile] [arguments] ... ``` How did you build and install ruby? Is the issue reproduced only on a particular machine? If it reproduces on another machine with CentOS 7.8, you might want to contact CentOS developers. ---------------------------------------- Bug #19397: ruby -h fails with SIGSGV if ulimit -s is any else than unlimited https://bugs.ruby-lang.org/issues/19397#change-101614 * Author: john_d_s (John Damm Soerensen) * Status: Feedback * Priority: Normal * ruby -v: ruby 3.3.0dev (2023-01-30T23:43:40Z master 7439ccf0ed) [x86_64-linux] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- This applies to all versions of ruby. I have tried these 2.6.3 2.6.6 2.7.2 3.0.0 3.2.0 To reproduce simply set `ulimit -s` to anything other than unlimited. Then run `ruby -h` (or any other invocation of ruby) and ruby will generate a SIGSEGV and core dump. The stack trace from gdb shows that ruby has failed in reserve_stack line 1022 (for the latest from github) gdb ruby core.11885 ``` Core was generated by `./ruby -h'. Program terminated with signal 11, Segmentation fault. #0 reserve_stack (limit=0x7e9a5f4400e0 <Address 0x7e9a5f4400e0 out of bounds>, limit@entry=0x7fffffffe000 "l=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=3"..., size=1535999991552, size@entry=1535999995904) at thread_pthread.c:1022 1022 limit[0] = 0; ``` -- https://bugs.ruby-lang.org/