ruby-core
Threads by month
- ----- 2025 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
July 2024
- 5 participants
- 216 discussions

[ruby-core:115937] [Ruby master Bug#20099] Ruby 3.3.0 segfaults on s390x musl libc (Alpine Linux)
by jirutka (Jakub Jirutka) 01 Jul '24
by jirutka (Jakub Jirutka) 01 Jul '24
01 Jul '24
Issue #20099 has been reported by jirutka (Jakub Jirutka).
----------------------------------------
Bug #20099: Ruby 3.3.0 segfaults on s390x musl libc (Alpine Linux)
https://bugs.ruby-lang.org/issues/20099
* Author: jirutka (Jakub Jirutka)
* Status: Open
* Priority: Normal
* ruby -v: 3.3.0
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
```
Configuration summary for ruby version 3.3.0
* Installation prefix: /usr
* exec prefix: ${prefix}
* arch: s390x-linux-musl
* site arch: ${arch}
* RUBY_BASE_NAME: ruby
* enable shared: yes
* ruby lib prefix: ${libdir}/${RUBY_BASE_NAME}
* site libraries path: ${rubylibprefix}/${sitearch}
* vendor path: ${rubylibprefix}/vendor_ruby
* target OS: linux-musl
* compiler: gcc
* with thread: pthread
* with coroutine: ucontext
* enable shared libs: yes
* dynamic library ext: so
* CFLAGS: ${optflags} ${debugflags} ${warnflags}
* LDFLAGS: -L. -Wl,--as-needed,-O1,--sort-common \
-fstack-protector-strong -rdynamic \
-Wl,-export-dynamic -Wl,--no-as-needed
* DLDFLAGS: -Wl,--as-needed,-O1,--sort-common \
-Wl,--compress-debug-sections=zlib
* optflags: -O3 -fno-fast-math
* debugflags: -ggdb3
* warnflags: -Wall -Wextra -Wdeprecated-declarations \
-Wdiv-by-zero -Wduplicated-cond \
-Wimplicit-function-declaration -Wimplicit-int \
-Wpointer-arith -Wwrite-strings \
-Wold-style-definition -Wimplicit-fallthrough=0 \
-Wmissing-noreturn -Wno-cast-function-type \
-Wno-constant-logical-operand -Wno-long-long \
-Wno-missing-field-initializers \
-Wno-overlength-strings \
-Wno-packed-bitfield-compat \
-Wno-parentheses-equality -Wno-self-assign \
-Wno-tautological-compare -Wno-unused-parameter \
-Wno-unused-value -Wsuggest-attribute=format \
-Wsuggest-attribute=noreturn -Wunused-variable \
-Wmisleading-indentation -Wundef
* strip command: strip -S -x
* install doc: rdoc
* YJIT support: no
* RJIT support: no
* man page type: man
* search path: /usr/lib/site_ruby/$(ruby_ver)/s390x-linux
---
BASERUBY = ./tool/missing-baseruby.bat
CC = gcc
LD = ld
LDSHARED = gcc -shared
CFLAGS = -O2 -fstack-clash-protection -Wformat -Werror=format-security -g -fno-omit-frame-pointer -fno-strict-aliasing -fPIC
XCFLAGS = -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -I. -I.ext/include/s390x-linux-musl -I./include -I. -I./prism -I./enc/unicode/15.0.0
CPPFLAGS = -fno-omit-frame-pointer -fno-strict-aliasing
DLDFLAGS = -Wl,--as-needed,-O1,--sort-common -Wl,--compress-debug-sections=zlib -Wl,-soname,libruby.so.3.3 -fstack-protector-strong
SOLIBS = -lz -lrt -lrt -lgmp -ldl -lcrypt -lm -lpthread -lucontext
LANG =
LC_ALL =
LC_CTYPE =
MFLAGS = -j8 --jobserver-auth=fifo:/tmp/GMfifo7323
RUSTC = no
YJIT_RUSTC_ARGS = --crate-name=yjit --crate-type=staticlib --edition=2021 -g -C lto=thin -C opt-level=3 -C overflow-checks=on '--out-dir=/builds/alpine/aports/main/ruby/src/ruby-3.3.0/yjit/target/release/' ./yjit/src/lib.rs
```
```
2023-12-26 20:45:17 +0000
Driver is ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [s390x-linux-musl]
Target is ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [s390x-linux-musl]
..............................................................................
..............................................................................
..............................................................................
..............................................................................
................................................................EA core file is found. Saving it at: "/tmp/bootstraptest-core.2023-12-26T20:45:18Z"
["gdb", "/builds/alpine/aports/main/ruby/src/ruby-3.3.0/ruby -I/builds/alpine/aports/main/ruby/src/ruby-3.3.0/lib --disable-gems", "-c", "/tmp/bootstraptest-core.2023-12-26T20:45:18Z", "-ex", "bt", "-batch"]
...EA core file is found. Saving it at: "/tmp/bootstraptest-core.2023-12-26T20:45:19Z"
["gdb", "/builds/alpine/aports/main/ruby/src/ruby-3.3.0/ruby -I/builds/alpine/aports/main/ruby/src/ruby-3.3.0/lib --disable-gems", "-c", "/tmp/bootstraptest-core.2023-12-26T20:45:19Z", "-ex", "bt", "-batch"]
.....Fstderr output is not empty
[BUG] Segmentation fault at 0x000007fece67a000
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [s390x-linux-musl]
-- Control frame information -----------------------------------------------
c:0001 p:---- s:0003 e:000002 DUMMY [FINISH]
-- Threading information ---------------------------------------------------
Total ractor count: 2
Ruby thread count for this ractor: 1
-- Other runtime information -----------------------------------------------
* Loaded script: bootstraptest.test_ractor.rb_244_1238.rb
* Loaded features:
0 enumerator.so
1 thread.rb
2 fiber.so
3 rational.so
4 complex.so
5 ruby2_keywords.rb
6 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/.ext/s390x-linux-musl/enc/encdb.so
7 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/.ext/s390x-linux-musl/enc/trans/transdb.so
* Process memory map:
2aa25e00000-2aa25e01000 r-xp 00000000 fe:00 2520910 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/ruby
2aa25e01000-2aa25e02000 r--p 00000000 fe:00 2520910 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/ruby
2aa25e02000-2aa25e03000 rw-p 00001000 fe:00 2520910 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/ruby
2aa2765d000-2aa2765e000 ---p 00000000 00:00 0 [heap]
2aa2765e000-2aa27664000 rw-p 00000000 00:00 0 [heap]
3ff572a8000-3ff572aa000 ---p 00000000 00:00 0
3ff572aa000-3ff572d0000 rw-p 00000000 00:00 0
3ff572d0000-3ff572d2000 ---p 00000000 00:00 0
3ff572d2000-3ff573f9000 rw-p 00000000 00:00 0
3ff573f9000-3ff573fa000 ---p 00000000 00:00 0
3ff573fa000-3ff5751a000 rw-p 00000000 00:00 0
3ff5751a000-3ff5751b000 ---p 00000000 00:00 0
3ff5751b000-3ff77300000 rw-p 00000000 00:00 0
3ff77300000-3ff77302000 r-xp 00000000 fe:00 2520334 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/.ext/s390x-linux-musl/enc/trans/transdb.so
3ff77302000-3ff77303000 r--p 00002000 fe:00 2520334 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/.ext/s390x-linux-musl/enc/trans/transdb.so
3ff77303000-3ff77304000 rw-p 00003000 fe:00 2520334 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/.ext/s390x-linux-musl/enc/trans/transdb.so
3ff77307000-3ff77309000 rw-p 00000000 00:00 0
3ff7730b000-3ff7730e000 rw-p 00000000 00:00 0
3ff77310000-3ff77330000 rw-p 00000000 00:00 0
3ff77332000-3ff77337000 rw-p 00000000 00:00 0
3ff77339000-3ff7733a000 rw-p 00000000 00:00 0
3ff7733b000-3ff7733e000 rw-p 00000000 00:00 0
3ff77340000-3ff77380000 rw-p 00000000 00:00 0
3ff77380000-3ff77382000 r-xp 00000000 fe:00 2520245 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/.ext/s390x-linux-musl/enc/encdb.so
3ff77382000-3ff77383000 r--p 00001000 fe:00 2520245 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/.ext/s390x-linux-musl/enc/encdb.so
3ff77383000-3ff77384000 rw-p 00002000 fe:00 2520245 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/.ext/s390x-linux-musl/enc/encdb.so
3ff77384000-3ff7739c000 rw-p 00000000 00:00 0
3ff7739c000-3ff7739d000 ---p 00000000 00:00 0
3ff7739d000-3ff773de000 rw-p 00000000 00:00 0
3ff773de000-3ff773df000 ---p 00000000 00:00 0
3ff773df000-3ff77420000 rw-p 00000000 00:00 0
3ff77420000-3ff77421000 ---p 00000000 00:00 0
3ff77421000-3ff77462000 rw-p 00000000 00:00 0
3ff77462000-3ff77463000 ---p 00000000 00:00 0
3ff77463000-3ff774a4000 rw-p 00000000 00:00 0
3ff774a4000-3ff774a5000 ---p 00000000 00:00 0
3ff774a5000-3ff774e6000 rw-p 00000000 00:00 0
3ff774e6000-3ff774e7000 ---p 00000000 00:00 0
3ff774e7000-3ff77528000 rw-p 00000000 00:00 0
3ff77528000-3ff77529000 ---p 00000000 00:00 0
3ff77529000-3ff7756a000 rw-p 00000000 00:00 0
3ff7756a000-3ff7756b000 ---p 00000000 00:00 0
3ff7756b000-3ff775ac000 rw-p 00000000 00:00 0
3ff775ac000-3ff775ad000 ---p 00000000 00:00 0
3ff775ad000-3ff775ee000 rw-p 00000000 00:00 0
3ff775ee000-3ff775ef000 ---p 00000000 00:00 0
3ff775ef000-3ff77630000 rw-p 00000000 00:00 0
3ff77630000-3ff77631000 ---p 00000000 00:00 0
3ff77631000-3ff77672000 rw-p 00000000 00:00 0
3ff77672000-3ff77673000 ---p 00000000 00:00 0
3ff77673000-3ff776b4000 rw-p 00000000 00:00 0
3ff776b4000-3ff776b5000 ---p 00000000 00:00 0
3ff776b5000-3ff776f6000 rw-p 00000000 00:00 0
3ff776f6000-3ff776f7000 ---p 00000000 00:00 0
3ff776f7000-3ff77738000 rw-p 00000000 00:00 0
3ff77738000-3ff77739000 ---p 00000000 00:00 0
3ff77739000-3ff7777a000 rw-p 00000000 00:00 0
3ff7777a000-3ff7777b000 ---p 00000000 00:00 0
3ff7777b000-3ff777bc000 rw-p 00000000 00:00 0
3ff777bc000-3ff777bd000 ---p 00000000 00:00 0
3ff777bd000-3ff777fe000 rw-p 00000000 00:00 0
3ff777fe000-3ff777ff000 ---p 00000000 00:00 0
3ff777ff000-3ff77840000 rw-p 00000000 00:00 0
3ff77840000-3ff77841000 ---p 00000000 00:00 0
3ff77841000-3ff77882000 rw-p 00000000 00:00 0
3ff77882000-3ff77883000 ---p 00000000 00:00 0
3ff77883000-3ff778c4000 rw-p 00000000 00:00 0
3ff778c4000-3ff778c5000 ---p 00000000 00:00 0
3ff778c5000-3ff77906000 rw-p 00000000 00:00 0
3ff77906000-3ff77907000 ---p 00000000 00:00 0
3ff77907000-3ff77948000 rw-p 00000000 00:00 0
3ff77948000-3ff77949000 ---p 00000000 00:00 0
3ff77949000-3ff7798a000 rw-p 00000000 00:00 0
3ff7798a000-3ff7798b000 ---p 00000000 00:00 0
3ff7798b000-3ff779cc000 rw-p 00000000 00:00 0
3ff779cc000-3ff779cd000 ---p 00000000 00:00 0
3ff779cd000-3ff77a0e000 rw-p 00000000 00:00 0
3ff77a0e000-3ff77a0f000 ---p 00000000 00:00 0
3ff77a0f000-3ff77a50000 rw-p 00000000 00:00 0
3ff77a50000-3ff77a51000 ---p 00000000 00:00 0
3ff77a51000-3ff77a92000 rw-p 00000000 00:00 0
3ff77a92000-3ff77a93000 ---p 00000000 00:00 0
3ff77a93000-3ff77ad4000 rw-p 00000000 00:00 0
3ff77ad4000-3ff77ad5000 ---p 00000000 00:00 0
3ff77ad5000-3ff77b16000 rw-p 00000000 00:00 0
3ff77b16000-3ff77b17000 ---p 00000000 00:00 0
3ff77b17000-3ff77b58000 rw-p 00000000 00:00 0
3ff77b58000-3ff77b59000 ---p 00000000 00:00 0
3ff77b59000-3ff77b9a000 rw-p 00000000 00:00 0
3ff77b9a000-3ff77b9b000 ---p 00000000 00:00 0
3ff77b9b000-3ff77bdc000 rw-p 00000000 00:00 0
3ff77bdc000-3ff77bde000 ---p 00000000 00:00 0
3ff77bde000-3ff91100000 rw-p 00000000 00:00 0
3ff91100000-3ff91101000 r-xp 00000000 fe:00 2758431 /lib/libucontext.so.1
3ff91101000-3ff91102000 r--p 00000000 fe:00 2758431 /lib/libucontext.so.1
3ff91102000-3ff91103000 rw-p 00001000 fe:00 2758431 /lib/libucontext.so.1
3ff91103000-3ff9114b000 rw-p 00000000 00:00 0
3ff9114f000-3ff91153000 rw-p 00000000 00:00 0
3ff91155000-3ff91180000 rw-p 00000000 00:00 0
3ff91180000-3ff911fd000 r-xp 00000000 fe:00 2755903 /usr/lib/libgmp.so.10.5.0
3ff911fd000-3ff911ff000 r--p 0007c000 fe:00 2755903 /usr/lib/libgmp.so.10.5.0
3ff911ff000-3ff91200000 rw-p 0007e000 fe:00 2755903 /usr/lib/libgmp.so.10.5.0
3ff91200000-3ff91219000 r-xp 00000000 fe:00 2754145 /lib/libz.so.1.3
3ff91219000-3ff9121a000 r--p 00018000 fe:00 2754145 /lib/libz.so.1.3
3ff9121a000-3ff9121b000 rw-p 00019000 fe:00 2754145 /lib/libz.so.1.3
3ff9121b000-3ff91280000 rw-p 00000000 00:00 0
3ff91280000-3ff91700000 r-xp 00000000 fe:00 2519847 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/libruby.so.3.3.0
3ff91700000-3ff9170c000 r--p 00480000 fe:00 2519847 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/libruby.so.3.3.0
3ff9170c000-3ff9170d000 rw-p 0048c000 fe:00 2519847 /builds/alpine/aports/main/ruby/src/ruby-3.3.0/libruby.so.3.3.0
3ff9170d000-3ff9171f000 rw-p 00000000 00:00 0
3ff9171f000-3ff91780000 rw-p 00000000 00:00 0
3ff91780000-3ff91830000 r-xp 00000000 fe:00 2758095 /lib/ld-musl-s390x.so.1
3ff91830000-3ff91831000 r--p 000b0000 fe:00 2758095 /lib/ld-musl-s390x.so.1
3ff91831000-3ff91832000 rw-p 000b1000 fe:00 2758095 /lib/ld-musl-s390x.so.1
3ff91832000-3ff91835000 rw-p 00000000 00:00 0
3ff91835000-3ff9187c000 rw-p 00000000 00:00 0
3ff9187c000-3ff9187e000 r--p 00000000 00:00 0 [vvar]
3ff9187e000-3ff91880000 r-xp 00000000 00:00 0 [vdso]
3ffe2381000-3ffe2b80000 rw-p 00000000 00:00 0 [stack]
```
…and many more tests fail like this.
---Files--------------------------------
ruby-3.3.0-s390x.log (281 KB)
--
https://bugs.ruby-lang.org/
3
2

[ruby-core:118408] [Ruby master Bug#18061] Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
by vo.x (Vit Ondruch) 01 Jul '24
by vo.x (Vit Ondruch) 01 Jul '24
01 Jul '24
Issue #18061 has been updated by vo.x (Vit Ondruch).
And FTR, [this](https://github.com/gcc-mirror/gcc/blob/8088374a868aacab4dff208ec3e3fd… is the `cet.h` content
----------------------------------------
Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
https://bugs.ruby-lang.org/issues/18061#change-108925
* Author: jaruga (Jun Aruga)
* Status: Open
* Assignee: kjtsanaktsidis (KJ Tsanaktsidis)
* Backport: 2.6: UNKNOWN, 2.7: REQUIRED, 3.0: REQUIRED
----------------------------------------
I found an issue in our company's internal test called "execshield" by a security tool annobin - annocheck command [1][2].
```
Hardened: libruby.so.2.7.4: FAIL: property-note test because no .note.gnu.property section found
```
Here is the reproducer on the upstream latest master, commit is 5f2987d6c2ae9ace3178ac3e1bbb4ac7079101eb,
```
$ autoconf
$ ./configure --enable-shared
$ make
$ ls libruby.so.3.1.0
libruby.so.3.1.0*
```
If you are using Red Hat based Linux distro, it's easy to install by the RPM package like this.
```
$ sudo dnf -y install annobin-annocheck
```
```
$ sudo yum -y install annobin-annocheck
```
Then
```
$ annocheck libruby.so.3.1.0
```
If you are using other Linux distros such as Ubuntu, you can use it by a container I prepared.
Prepare the following `Dockerfile`.
```
$ cat Dockerfile
FROM docker.io/fedora:34
RUN cat /etc/fedora-release
RUN dnf -y install annobin-annocheck
WORKDIR /work
```
Then build the container image with the `Dockerfile` and run the annocheck command for the `libruby.so.3.1.0` on your host environment. The `-v` is an option for bind mount between host and container environment.
```
$ docker build --rm -t fedora-annocheck .
$ docker run --rm -t -v $(pwd):/work fedora-annocheck annocheck /work/libruby.so.3.1.0
annocheck: Version 9.79.
Hardened: libruby.so.3.1.0: FAIL: bind-now test because not linked with -Wl,-z,now
Hardened: libruby.so.3.1.0: FAIL: notes test because gaps were detected in the annobin coverage
Hardened: libruby.so.3.1.0: FAIL: cf-protection test because no .note.gnu.property section = no control flow information
Hardened: libruby.so.3.1.0: FAIL: property-note test because no .note.gnu.property section found
Hardened: Rerun annocheck with --verbose to see more information on the tests.
```
The message `Hardened: libruby.so.3.1.0: FAIL: property-note test because no .note.gnu.property section found` is what I found in our internal test. For other FAIL messages, maybe it can be fixed by changing how to build.
Asking a colleague, I was told that the `coroutine/*/Context.S` files such as [coroutine/x86/Context.S](https://github.com/ruby/ruby/blob/master/coroutine… cause the failure. Do you have any idea how to fix this? Thanks.
* [1] https://sourceware.org/annobin/
* [2] You can see `man annocheck` or https://www.mankier.com/1/annocheck .
---Files--------------------------------
0001-Add-.note.gnu.property-sections.patch (2.64 KB)
0001-Add-.note.gnu.property-sections.patch (3.69 KB)
config-pie.log (11.4 KB)
--
https://bugs.ruby-lang.org/
1
0

[ruby-core:118407] [Ruby master Bug#18061] Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
by vo.x (Vit Ondruch) 01 Jul '24
by vo.x (Vit Ondruch) 01 Jul '24
01 Jul '24
Issue #18061 has been updated by vo.x (Vit Ondruch).
As can be seen, I am testing this with Ruby 3.3.2. The upstream situation is, however, already a bit different since [#10987](https://github.com/ruby/ruby/pull/10987) (I actually took the inspiration from that PR). Given that [GCC documentation](https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.h… mentions that specifying the `-fcf-protection` compiler option defines the __CET__ macro, I think that we should build from here and condition the [#10987](https://github.com/ruby/ruby/pull/10987) based on the `__CET__` macro instead of specializing it to `__OpenBSD__`. And build system should somehow propagate the flag to the `ASFLAGS`.
BTW given what the annocheck referenced [documentation](https://sourceware.org/annobin/annobin.html/Test-cf-protecti… says, I think that the patch above should be enough and the [#5895](https://github.com/ruby/ruby/pull/5895) likely address SHSTK, but certainly not the IBT what is the main point of this ticket.
----------------------------------------
Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
https://bugs.ruby-lang.org/issues/18061#change-108924
* Author: jaruga (Jun Aruga)
* Status: Open
* Assignee: kjtsanaktsidis (KJ Tsanaktsidis)
* Backport: 2.6: UNKNOWN, 2.7: REQUIRED, 3.0: REQUIRED
----------------------------------------
I found an issue in our company's internal test called "execshield" by a security tool annobin - annocheck command [1][2].
```
Hardened: libruby.so.2.7.4: FAIL: property-note test because no .note.gnu.property section found
```
Here is the reproducer on the upstream latest master, commit is 5f2987d6c2ae9ace3178ac3e1bbb4ac7079101eb,
```
$ autoconf
$ ./configure --enable-shared
$ make
$ ls libruby.so.3.1.0
libruby.so.3.1.0*
```
If you are using Red Hat based Linux distro, it's easy to install by the RPM package like this.
```
$ sudo dnf -y install annobin-annocheck
```
```
$ sudo yum -y install annobin-annocheck
```
Then
```
$ annocheck libruby.so.3.1.0
```
If you are using other Linux distros such as Ubuntu, you can use it by a container I prepared.
Prepare the following `Dockerfile`.
```
$ cat Dockerfile
FROM docker.io/fedora:34
RUN cat /etc/fedora-release
RUN dnf -y install annobin-annocheck
WORKDIR /work
```
Then build the container image with the `Dockerfile` and run the annocheck command for the `libruby.so.3.1.0` on your host environment. The `-v` is an option for bind mount between host and container environment.
```
$ docker build --rm -t fedora-annocheck .
$ docker run --rm -t -v $(pwd):/work fedora-annocheck annocheck /work/libruby.so.3.1.0
annocheck: Version 9.79.
Hardened: libruby.so.3.1.0: FAIL: bind-now test because not linked with -Wl,-z,now
Hardened: libruby.so.3.1.0: FAIL: notes test because gaps were detected in the annobin coverage
Hardened: libruby.so.3.1.0: FAIL: cf-protection test because no .note.gnu.property section = no control flow information
Hardened: libruby.so.3.1.0: FAIL: property-note test because no .note.gnu.property section found
Hardened: Rerun annocheck with --verbose to see more information on the tests.
```
The message `Hardened: libruby.so.3.1.0: FAIL: property-note test because no .note.gnu.property section found` is what I found in our internal test. For other FAIL messages, maybe it can be fixed by changing how to build.
Asking a colleague, I was told that the `coroutine/*/Context.S` files such as [coroutine/x86/Context.S](https://github.com/ruby/ruby/blob/master/coroutine… cause the failure. Do you have any idea how to fix this? Thanks.
* [1] https://sourceware.org/annobin/
* [2] You can see `man annocheck` or https://www.mankier.com/1/annocheck .
---Files--------------------------------
0001-Add-.note.gnu.property-sections.patch (2.64 KB)
0001-Add-.note.gnu.property-sections.patch (3.69 KB)
config-pie.log (11.4 KB)
--
https://bugs.ruby-lang.org/
1
0

[ruby-core:118406] [Ruby master Bug#18061] Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
by vo.x (Vit Ondruch) 01 Jul '24
by vo.x (Vit Ondruch) 01 Jul '24
01 Jul '24
Issue #18061 has been updated by vo.x (Vit Ondruch).
Forgot to mention that Ruby needs to be built with `--disable-yjit`, because Rust is another problem:
https://bugzilla.redhat.com/show_bug.cgi?id=2284605#c1
----------------------------------------
Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
https://bugs.ruby-lang.org/issues/18061#change-108923
* Author: jaruga (Jun Aruga)
* Status: Open
* Assignee: kjtsanaktsidis (KJ Tsanaktsidis)
* Backport: 2.6: UNKNOWN, 2.7: REQUIRED, 3.0: REQUIRED
----------------------------------------
I found an issue in our company's internal test called "execshield" by a security tool annobin - annocheck command [1][2].
```
Hardened: libruby.so.2.7.4: FAIL: property-note test because no .note.gnu.property section found
```
Here is the reproducer on the upstream latest master, commit is 5f2987d6c2ae9ace3178ac3e1bbb4ac7079101eb,
```
$ autoconf
$ ./configure --enable-shared
$ make
$ ls libruby.so.3.1.0
libruby.so.3.1.0*
```
If you are using Red Hat based Linux distro, it's easy to install by the RPM package like this.
```
$ sudo dnf -y install annobin-annocheck
```
```
$ sudo yum -y install annobin-annocheck
```
Then
```
$ annocheck libruby.so.3.1.0
```
If you are using other Linux distros such as Ubuntu, you can use it by a container I prepared.
Prepare the following `Dockerfile`.
```
$ cat Dockerfile
FROM docker.io/fedora:34
RUN cat /etc/fedora-release
RUN dnf -y install annobin-annocheck
WORKDIR /work
```
Then build the container image with the `Dockerfile` and run the annocheck command for the `libruby.so.3.1.0` on your host environment. The `-v` is an option for bind mount between host and container environment.
```
$ docker build --rm -t fedora-annocheck .
$ docker run --rm -t -v $(pwd):/work fedora-annocheck annocheck /work/libruby.so.3.1.0
annocheck: Version 9.79.
Hardened: libruby.so.3.1.0: FAIL: bind-now test because not linked with -Wl,-z,now
Hardened: libruby.so.3.1.0: FAIL: notes test because gaps were detected in the annobin coverage
Hardened: libruby.so.3.1.0: FAIL: cf-protection test because no .note.gnu.property section = no control flow information
Hardened: libruby.so.3.1.0: FAIL: property-note test because no .note.gnu.property section found
Hardened: Rerun annocheck with --verbose to see more information on the tests.
```
The message `Hardened: libruby.so.3.1.0: FAIL: property-note test because no .note.gnu.property section found` is what I found in our internal test. For other FAIL messages, maybe it can be fixed by changing how to build.
Asking a colleague, I was told that the `coroutine/*/Context.S` files such as [coroutine/x86/Context.S](https://github.com/ruby/ruby/blob/master/coroutine… cause the failure. Do you have any idea how to fix this? Thanks.
* [1] https://sourceware.org/annobin/
* [2] You can see `man annocheck` or https://www.mankier.com/1/annocheck .
---Files--------------------------------
0001-Add-.note.gnu.property-sections.patch (2.64 KB)
0001-Add-.note.gnu.property-sections.patch (3.69 KB)
config-pie.log (11.4 KB)
--
https://bugs.ruby-lang.org/
1
0

[ruby-core:118405] [Ruby master Bug#18061] Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
by vo.x (Vit Ondruch) 01 Jul '24
by vo.x (Vit Ondruch) 01 Jul '24
01 Jul '24
Issue #18061 has been updated by vo.x (Vit Ondruch).
So I am experimenting with this simple patch:
~~~patch
diff --git a/coroutine/amd64/Context.S b/coroutine/amd64/Context.S
index fcc4b67bdc..b364fc06a1 100644
--- a/coroutine/amd64/Context.S
+++ b/coroutine/amd64/Context.S
@@ -4,6 +4,8 @@
## Created by Samuel Williams on 10/5/2018.
## Copyright, 2018, by Samuel Williams.
##
+
+#include <cet.h>
#define TOKEN_PASTE(x,y) x##y
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
@@ -12,6 +14,8 @@
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
+
+ _CET_ENDBR
# Make space on the stack for 6 registers:
subq $48, %rsp
~~~
However, the patch alone is not enough, because there needs to be also the `-fcf-protection` propagated into the compiler. That can be workarounded by `export ASFLAGS='-fcf-protection'`. With these bits in place, I can pass the `annocheck`:
~~~
<mock-chroot> sh-5.2$ annocheck -v ./coroutine/amd64/Context.o
annocheck: Version 12.59.
Hardened: ./coroutine/amd64/Context.o: info: No matching profile found.
Hardened: ./coroutine/amd64/Context.o: PASS: pie test because the ELF file header has the correct type
Hardened: ./coroutine/amd64/Context.o: PASS: cf-protection test because correct flags found in .note.gnu.property note
Hardened: ./coroutine/amd64/Context.o: PASS: gnu-stack test because non-executable .note.GNU-stack section found
Hardened: ./coroutine/amd64/Context.o: skip: gaps test because no notes found - therefore there are no gaps!
Hardened: ./coroutine/amd64/Context.o: MAYB: test: notes, reason: annobin notes not found
Hardened: ./coroutine/amd64/Context.o: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-notes.html
Hardened: ./coroutine/amd64/Context.o: skip: bind-now test because only needed for executables
Hardened: ./coroutine/amd64/Context.o: skip: branch-protection test because not an AArch64 binary
Hardened: ./coroutine/amd64/Context.o: PASS: dynamic-segment test
Hardened: ./coroutine/amd64/Context.o: skip: dynamic-tags test because AArch64 specific
Hardened: ./coroutine/amd64/Context.o: PASS: entry test
Hardened: ./coroutine/amd64/Context.o: PASS: fast test
Hardened: ./coroutine/amd64/Context.o: skip: fips test because not a GO binary
Hardened: ./coroutine/amd64/Context.o: skip: fortify test because no compiled C/C++ code found
Hardened: ./coroutine/amd64/Context.o: skip: glibcxx-assertions test because no compiled C/C++ code found
Hardened: ./coroutine/amd64/Context.o: skip: gnu-relro test because not needed in object files
Hardened: ./coroutine/amd64/Context.o: skip: go-revision test because no GO compiled code found
Hardened: ./coroutine/amd64/Context.o: skip: implicit-values test because These tests are only relevent to C source code
Hardened: ./coroutine/amd64/Context.o: PASS: instrumentation test
Hardened: ./coroutine/amd64/Context.o: skip: lto test because not compiled from C/C++ code
Hardened: ./coroutine/amd64/Context.o: PASS: openssl-engine test
Hardened: ./coroutine/amd64/Context.o: MAYB: test: optimization, reason: could not determine how the code was created
Hardened: ./coroutine/amd64/Context.o: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-optimization.html
Hardened: ./coroutine/amd64/Context.o: WARN: This can happen if the program is compiled from a language unknown to annocheck
Hardened: ./coroutine/amd64/Context.o: WARN: or because there are no annobin build notes (could they be in a separate file ?)
Hardened: ./coroutine/amd64/Context.o: WARN: For more details see https://sourceware.org/annobin/annobin.html/Absence-of-compiled-code.html
Hardened: ./coroutine/amd64/Context.o: MAYB: test: pic, reason: no valid notes found regarding this test
Hardened: ./coroutine/amd64/Context.o: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-pic.html
Hardened: ./coroutine/amd64/Context.o: PASS: production test
Hardened: ./coroutine/amd64/Context.o: skip: property-note test because property notes not needed in object files
Hardened: ./coroutine/amd64/Context.o: PASS: run-path test
Hardened: ./coroutine/amd64/Context.o: PASS: rwx-seg test
Hardened: ./coroutine/amd64/Context.o: PASS: short-enums test
Hardened: ./coroutine/amd64/Context.o: MAYB: test: stack-clash, reason: could not determine how the code was created
Hardened: ./coroutine/amd64/Context.o: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-stack-clash.html
Hardened: ./coroutine/amd64/Context.o: WARN: This can happen if the program is compiled from a language unknown to annocheck
Hardened: ./coroutine/amd64/Context.o: WARN: or because there are no annobin build notes (could they be in a separate file ?)
Hardened: ./coroutine/amd64/Context.o: WARN: For more details see https://sourceware.org/annobin/annobin.html/Absence-of-compiled-code.html
Hardened: ./coroutine/amd64/Context.o: MAYB: test: stack-prot, reason: could not determine how the code was created
Hardened: ./coroutine/amd64/Context.o: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-stack-prot.html
Hardened: ./coroutine/amd64/Context.o: WARN: This can happen if the program is compiled from a language unknown to annocheck
Hardened: ./coroutine/amd64/Context.o: WARN: or because there are no annobin build notes (could they be in a separate file ?)
Hardened: ./coroutine/amd64/Context.o: WARN: For more details see https://sourceware.org/annobin/annobin.html/Absence-of-compiled-code.html
Hardened: ./coroutine/amd64/Context.o: skip: stack-realign test because not an i686 executable
Hardened: ./coroutine/amd64/Context.o: PASS: textrel test
Hardened: ./coroutine/amd64/Context.o: PASS: threads test
Hardened: ./coroutine/amd64/Context.o: PASS: unicode test
Hardened: ./coroutine/amd64/Context.o: skip: warnings test because no compiled C/C++ code found
Hardened: ./coroutine/amd64/Context.o: PASS: writable-got test
Hardened: ./coroutine/amd64/Context.o: Overall: FAIL (due to MAYB results).
<mock-chroot> sh-5.2$ annocheck -v mini
miniinit.o miniruby
<mock-chroot> sh-5.2$ annocheck -v miniruby
annocheck: Version 12.59.
Hardened: miniruby: info: No matching profile found.
Hardened: miniruby: PASS: pie test because the ELF file header has the correct type
Hardened: miniruby: info: written in C (source: DW_AT_language string).
Hardened: miniruby: PASS: pic test because option found in DW_AT_producer string
Hardened: miniruby: PASS: stack-prot test because option found in DW_AT_producer string
Hardened: miniruby: PASS: optimization test because option found in DW_AT_producer string
Hardened: miniruby: PASS: lto test because detected in DW_AT_producer string
Hardened: miniruby: PASS: cf-protection test because correct flags found in .note.gnu.property note
Hardened: miniruby: PASS: writable-got test
Hardened: miniruby: PASS: dynamic-segment test
Hardened: miniruby: PASS: bind-now test
Hardened: miniruby: PASS: notes test because annobin notes found in the .annobin.notes section
Hardened: miniruby: skip: fast test because function ../sysdeps/x86/abi-note.c is part of the C library's static code and does use math functions
Hardened: miniruby: skip: lto test because function ../sysdeps/x86/abi-note.c is part of the C library which is deliberately built without LTO
Hardened: miniruby: PASS: implicit-values test because -Wimplicit-int and -Wimplicit-function-decalration enabled
Hardened: miniruby: PASS: stack-clash test because compiled with -fstack-clash-protection
Hardened: miniruby: skip: fortify test because function ../sysdeps/x86/abi-note.c is part of the C library, and as such it does not need fortification
Hardened: miniruby: PASS: glibcxx-assertions test
Hardened: miniruby: skip: warnings test because LTO compilation discards preprocessor options
Hardened: miniruby: skip: implicit-values test because -Wimplicit-int setting is hidden by LTO
Hardened: miniruby: PASS: entry test
Hardened: miniruby: PASS: gnu-stack test because stack segment exists with the correct permissions
Hardened: miniruby: PASS: gnu-relro test
Hardened: miniruby: skip: gaps test because string notes imply full coverage
Hardened: miniruby: skip: branch-protection test because not an AArch64 binary
Hardened: miniruby: skip: dynamic-tags test because AArch64 specific
Hardened: miniruby: skip: fips test because not a GO binary
Hardened: miniruby: skip: go-revision test because no GO compiled code found
Hardened: miniruby: PASS: instrumentation test
Hardened: miniruby: PASS: openssl-engine test
Hardened: miniruby: PASS: production test
Hardened: miniruby: PASS: property-note test because CET enabled property note found
Hardened: miniruby: PASS: run-path test
Hardened: miniruby: PASS: rwx-seg test
Hardened: miniruby: PASS: short-enums test
Hardened: miniruby: skip: stack-realign test because not an i686 executable
Hardened: miniruby: PASS: textrel test
Hardened: miniruby: PASS: threads test
Hardened: miniruby: PASS: unicode test
Hardened: miniruby: Overall: PASS.
<mock-chroot> sh-5.2$ annocheck -v libruby.so.3.3.2
annocheck: Version 12.59.
Hardened: libruby.so.3.3.2: info: No matching profile found.
Hardened: libruby.so.3.3.2: PASS: pie test because the ELF file header has the correct type
Hardened: libruby.so.3.3.2: info: written in C (source: DW_AT_language string).
Hardened: libruby.so.3.3.2: PASS: pic test because option found in DW_AT_producer string
Hardened: libruby.so.3.3.2: PASS: stack-prot test because option found in DW_AT_producer string
Hardened: libruby.so.3.3.2: PASS: optimization test because option found in DW_AT_producer string
Hardened: libruby.so.3.3.2: PASS: lto test because detected in DW_AT_producer string
Hardened: libruby.so.3.3.2: PASS: cf-protection test because correct flags found in .note.gnu.property note
Hardened: libruby.so.3.3.2: PASS: writable-got test
Hardened: libruby.so.3.3.2: PASS: dynamic-segment test
Hardened: libruby.so.3.3.2: PASS: bind-now test
Hardened: libruby.so.3.3.2: PASS: notes test because annobin notes found in the .annobin.notes section
Hardened: libruby.so.3.3.2: skip: warnings test because LTO compilation discards preprocessor options
Hardened: libruby.so.3.3.2: skip: implicit-values test because -Wimplicit-int setting is hidden by LTO
Hardened: libruby.so.3.3.2: skip: fortify test because LTO compilation discards preprocessor options
Hardened: libruby.so.3.3.2: PASS: glibcxx-assertions test
Hardened: libruby.so.3.3.2: PASS: stack-clash test because compiled with -fstack-clash-protection
Hardened: libruby.so.3.3.2: skip: entry test because shared libraries do not use entry points
Hardened: libruby.so.3.3.2: PASS: gnu-stack test because stack segment exists with the correct permissions
Hardened: libruby.so.3.3.2: PASS: gnu-relro test
Hardened: libruby.so.3.3.2: skip: gaps test because string notes imply full coverage
Hardened: libruby.so.3.3.2: skip: branch-protection test because not an AArch64 binary
Hardened: libruby.so.3.3.2: skip: dynamic-tags test because AArch64 specific
Hardened: libruby.so.3.3.2: PASS: fast test
Hardened: libruby.so.3.3.2: skip: fips test because not a GO binary
Hardened: libruby.so.3.3.2: skip: go-revision test because no GO compiled code found
Hardened: libruby.so.3.3.2: PASS: instrumentation test
Hardened: libruby.so.3.3.2: PASS: openssl-engine test
Hardened: libruby.so.3.3.2: PASS: production test
Hardened: libruby.so.3.3.2: PASS: property-note test because CET enabled property note found
Hardened: libruby.so.3.3.2: PASS: run-path test
Hardened: libruby.so.3.3.2: PASS: rwx-seg test
Hardened: libruby.so.3.3.2: PASS: short-enums test
Hardened: libruby.so.3.3.2: skip: stack-realign test because not an i686 executable
Hardened: libruby.so.3.3.2: PASS: textrel test
Hardened: libruby.so.3.3.2: PASS: threads test
Hardened: libruby.so.3.3.2: PASS: unicode test
Hardened: libruby.so.3.3.2: Overall: PASS.
~~~
and this is the diff to version without the steps above:
~~~
--- <bez názvu>
+++ <bez názvu>
@@ -2,14 +2,13 @@
annocheck: Version 12.59.
Hardened: ./coroutine/amd64/Context.o: info: No matching profile found.
Hardened: ./coroutine/amd64/Context.o: PASS: pie test because the ELF file header has the correct type
+Hardened: ./coroutine/amd64/Context.o: PASS: cf-protection test because correct flags found in .note.gnu.property note
Hardened: ./coroutine/amd64/Context.o: PASS: gnu-stack test because non-executable .note.GNU-stack section found
Hardened: ./coroutine/amd64/Context.o: skip: gaps test because no notes found - therefore there are no gaps!
Hardened: ./coroutine/amd64/Context.o: MAYB: test: notes, reason: annobin notes not found
Hardened: ./coroutine/amd64/Context.o: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-notes.html
Hardened: ./coroutine/amd64/Context.o: skip: bind-now test because only needed for executables
Hardened: ./coroutine/amd64/Context.o: skip: branch-protection test because not an AArch64 binary
-Hardened: ./coroutine/amd64/Context.o: FAIL: cf-protection test because no .note.gnu.property section = no control flow information
-Hardened: ./coroutine/amd64/Context.o: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-cf-protection.html
Hardened: ./coroutine/amd64/Context.o: PASS: dynamic-segment test
Hardened: ./coroutine/amd64/Context.o: skip: dynamic-tags test because AArch64 specific
Hardened: ./coroutine/amd64/Context.o: PASS: entry test
@@ -51,7 +50,9 @@
Hardened: ./coroutine/amd64/Context.o: PASS: unicode test
Hardened: ./coroutine/amd64/Context.o: skip: warnings test because no compiled C/C++ code found
Hardened: ./coroutine/amd64/Context.o: PASS: writable-got test
-Hardened: ./coroutine/amd64/Context.o: Overall: FAIL.
+Hardened: ./coroutine/amd64/Context.o: Overall: FAIL (due to MAYB results).
+<mock-chroot> sh-5.2$ annocheck -v mini
+miniinit.o miniruby
<mock-chroot> sh-5.2$ annocheck -v miniruby
annocheck: Version 12.59.
Hardened: miniruby: info: No matching profile found.
@@ -61,6 +62,7 @@
Hardened: miniruby: PASS: stack-prot test because option found in DW_AT_producer string
Hardened: miniruby: PASS: optimization test because option found in DW_AT_producer string
Hardened: miniruby: PASS: lto test because detected in DW_AT_producer string
+Hardened: miniruby: PASS: cf-protection test because correct flags found in .note.gnu.property note
Hardened: miniruby: PASS: writable-got test
Hardened: miniruby: PASS: dynamic-segment test
Hardened: miniruby: PASS: bind-now test
@@ -78,16 +80,13 @@
Hardened: miniruby: PASS: gnu-relro test
Hardened: miniruby: skip: gaps test because string notes imply full coverage
Hardened: miniruby: skip: branch-protection test because not an AArch64 binary
-Hardened: miniruby: FAIL: cf-protection test because no .note.gnu.property section = no control flow information
-Hardened: miniruby: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-cf-protection.html
Hardened: miniruby: skip: dynamic-tags test because AArch64 specific
Hardened: miniruby: skip: fips test because not a GO binary
Hardened: miniruby: skip: go-revision test because no GO compiled code found
Hardened: miniruby: PASS: instrumentation test
Hardened: miniruby: PASS: openssl-engine test
Hardened: miniruby: PASS: production test
-Hardened: miniruby: FAIL: property-note test because a property note was found but it shows that cf-protection is not enabled
-Hardened: miniruby: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-property-note.html
+Hardened: miniruby: PASS: property-note test because CET enabled property note found
Hardened: miniruby: PASS: run-path test
Hardened: miniruby: PASS: rwx-seg test
Hardened: miniruby: PASS: short-enums test
@@ -95,7 +94,7 @@
Hardened: miniruby: PASS: textrel test
Hardened: miniruby: PASS: threads test
Hardened: miniruby: PASS: unicode test
-Hardened: miniruby: Overall: FAIL.
+Hardened: miniruby: Overall: PASS.
<mock-chroot> sh-5.2$ annocheck -v libruby.so.3.3.2
annocheck: Version 12.59.
Hardened: libruby.so.3.3.2: info: No matching profile found.
@@ -105,6 +104,7 @@
Hardened: libruby.so.3.3.2: PASS: stack-prot test because option found in DW_AT_producer string
Hardened: libruby.so.3.3.2: PASS: optimization test because option found in DW_AT_producer string
Hardened: libruby.so.3.3.2: PASS: lto test because detected in DW_AT_producer string
+Hardened: libruby.so.3.3.2: PASS: cf-protection test because correct flags found in .note.gnu.property note
Hardened: libruby.so.3.3.2: PASS: writable-got test
Hardened: libruby.so.3.3.2: PASS: dynamic-segment test
Hardened: libruby.so.3.3.2: PASS: bind-now test
@@ -119,8 +119,6 @@
Hardened: libruby.so.3.3.2: PASS: gnu-relro test
Hardened: libruby.so.3.3.2: skip: gaps test because string notes imply full coverage
Hardened: libruby.so.3.3.2: skip: branch-protection test because not an AArch64 binary
-Hardened: libruby.so.3.3.2: FAIL: cf-protection test because no .note.gnu.property section = no control flow information
-Hardened: libruby.so.3.3.2: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-cf-protection.html
Hardened: libruby.so.3.3.2: skip: dynamic-tags test because AArch64 specific
Hardened: libruby.so.3.3.2: PASS: fast test
Hardened: libruby.so.3.3.2: skip: fips test because not a GO binary
@@ -128,8 +126,7 @@
Hardened: libruby.so.3.3.2: PASS: instrumentation test
Hardened: libruby.so.3.3.2: PASS: openssl-engine test
Hardened: libruby.so.3.3.2: PASS: production test
-Hardened: libruby.so.3.3.2: FAIL: property-note test because a property note was found but it shows that cf-protection is not enabled
-Hardened: libruby.so.3.3.2: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-property-note.html
+Hardened: libruby.so.3.3.2: PASS: property-note test because CET enabled property note found
Hardened: libruby.so.3.3.2: PASS: run-path test
Hardened: libruby.so.3.3.2: PASS: rwx-seg test
Hardened: libruby.so.3.3.2: PASS: short-enums test
@@ -137,4 +134,4 @@
Hardened: libruby.so.3.3.2: PASS: textrel test
Hardened: libruby.so.3.3.2: PASS: threads test
Hardened: libruby.so.3.3.2: PASS: unicode test
-Hardened: libruby.so.3.3.2: Overall: FAIL.
+Hardened: libruby.so.3.3.2: Overall: PASS.
~~~
----------------------------------------
Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
https://bugs.ruby-lang.org/issues/18061#change-108922
* Author: jaruga (Jun Aruga)
* Status: Open
* Assignee: kjtsanaktsidis (KJ Tsanaktsidis)
* Backport: 2.6: UNKNOWN, 2.7: REQUIRED, 3.0: REQUIRED
----------------------------------------
I found an issue in our company's internal test called "execshield" by a security tool annobin - annocheck command [1][2].
```
Hardened: libruby.so.2.7.4: FAIL: property-note test because no .note.gnu.property section found
```
Here is the reproducer on the upstream latest master, commit is 5f2987d6c2ae9ace3178ac3e1bbb4ac7079101eb,
```
$ autoconf
$ ./configure --enable-shared
$ make
$ ls libruby.so.3.1.0
libruby.so.3.1.0*
```
If you are using Red Hat based Linux distro, it's easy to install by the RPM package like this.
```
$ sudo dnf -y install annobin-annocheck
```
```
$ sudo yum -y install annobin-annocheck
```
Then
```
$ annocheck libruby.so.3.1.0
```
If you are using other Linux distros such as Ubuntu, you can use it by a container I prepared.
Prepare the following `Dockerfile`.
```
$ cat Dockerfile
FROM docker.io/fedora:34
RUN cat /etc/fedora-release
RUN dnf -y install annobin-annocheck
WORKDIR /work
```
Then build the container image with the `Dockerfile` and run the annocheck command for the `libruby.so.3.1.0` on your host environment. The `-v` is an option for bind mount between host and container environment.
```
$ docker build --rm -t fedora-annocheck .
$ docker run --rm -t -v $(pwd):/work fedora-annocheck annocheck /work/libruby.so.3.1.0
annocheck: Version 9.79.
Hardened: libruby.so.3.1.0: FAIL: bind-now test because not linked with -Wl,-z,now
Hardened: libruby.so.3.1.0: FAIL: notes test because gaps were detected in the annobin coverage
Hardened: libruby.so.3.1.0: FAIL: cf-protection test because no .note.gnu.property section = no control flow information
Hardened: libruby.so.3.1.0: FAIL: property-note test because no .note.gnu.property section found
Hardened: Rerun annocheck with --verbose to see more information on the tests.
```
The message `Hardened: libruby.so.3.1.0: FAIL: property-note test because no .note.gnu.property section found` is what I found in our internal test. For other FAIL messages, maybe it can be fixed by changing how to build.
Asking a colleague, I was told that the `coroutine/*/Context.S` files such as [coroutine/x86/Context.S](https://github.com/ruby/ruby/blob/master/coroutine… cause the failure. Do you have any idea how to fix this? Thanks.
* [1] https://sourceware.org/annobin/
* [2] You can see `man annocheck` or https://www.mankier.com/1/annocheck .
---Files--------------------------------
0001-Add-.note.gnu.property-sections.patch (2.64 KB)
0001-Add-.note.gnu.property-sections.patch (3.69 KB)
config-pie.log (11.4 KB)
--
https://bugs.ruby-lang.org/
1
0

[ruby-core:118397] [Ruby master Bug#20596] [BUG] unexpected rb_parser_ary_data_type (0) for script lines
by Eregon (Benoit Daloze) 01 Jul '24
by Eregon (Benoit Daloze) 01 Jul '24
01 Jul '24
Issue #20596 has been reported by Eregon (Benoit Daloze).
----------------------------------------
Bug #20596: [BUG] unexpected rb_parser_ary_data_type (0) for script lines
https://bugs.ruby-lang.org/issues/20596
* Author: Eregon (Benoit Daloze)
* Status: Open
* Assignee: yui-knk (Kaneko Yuichiro)
* ruby -v: ruby 3.4.0dev (2024-06-26T17:31:40Z :detached: 43d7db3828) [x86_64-linux]
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
https://github.com/ruby/setup-ruby/actions/runs/9697443755/job/26761634004
```
/home/runner/.rubies/ruby-head/bin/bundle install --jobs 4
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb: [BUG] unexpected rb_parser_ary_data_type (0) for script lines
ruby 3.4.0dev (2024-06-26T17:31:40Z :detached: 43d7db3828) [x86_64-linux]
-- Control frame information -----------------------------------------------
c:0021 p:---- s:0091 e:000090 DUMMY [FINISH]
c:0020 p:---- s:0088 e:000087 CFUNC :require_relative
c:0019 p:0017 s:0083 e:000082 TOP /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/dependency_graph.rb:6 [FINISH]
c:0018 p:---- s:0080 e:000079 CFUNC :require_relative
c:0017 p:0005 s:0075 e:000074 TOP /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/resolver.rb:3 [FINISH]
c:0016 p:---- s:0072 e:000071 CFUNC :require_relative
c:0015 p:0017 s:0067 e:000066 TOP /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo.rb:5 [FINISH]
c:0014 p:---- s:0064 e:000063 CFUNC :require_relative
c:0013 p:0005 s:0059 e:000058 TOP /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendored_molinillo.rb:3 [FINISH]
c:0012 p:---- s:0056 e:000055 CFUNC :require_relative
c:0011 p:0005 s:0051 e:000050 CLASS /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/resolver.rb:14
c:0010 p:0025 s:0048 e:000047 TOP /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/resolver.rb:13 [FINISH]
c:0009 p:---- s:0045 e:000044 CFUNC :require
c:0008 p:0023 s:0040 e:000039 METHOD <internal:/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/core_ext/kernel_require.rb>:136 [FINISH]
c:0007 p:0003 s:0034 e:000032 METHOD /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/request_set.rb:425
c:0006 p:0035 s:0029 e:000028 METHOD /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems.rb:227
c:0005 p:0008 s:0024 e:000023 BLOCK /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems.rb:284 [FINISH]
c:0004 p:---- s:0021 e:000020 CFUNC :synchronize
c:0003 p:0019 s:0017 e:000016 METHOD /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems.rb:282
c:0002 p:0079 s:0009 E:0026a0 EVAL /home/runner/.rubies/ruby-head/bin/bundle:25 [FINISH]
c:0001 p:0000 s:0003 E:001aa0 DUMMY [FINISH]
-- Ruby level backtrace information ----------------------------------------
/home/runner/.rubies/ruby-head/bin/bundle:25:in '<main>'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems.rb:282:in 'activate_bin_path'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems.rb:282:in 'synchronize'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems.rb:284:in 'block in activate_bin_path'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems.rb:227:in 'finish_resolve'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/request_set.rb:425:in 'resolve_current'
<internal:/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/core_ext/kernel_require.rb>:136:in 'require'
<internal:/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/core_ext/kernel_require.rb>:136:in 'require'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/resolver.rb:13:in '<top (required)>'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/resolver.rb:14:in '<class:Resolver>'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/resolver.rb:14:in 'require_relative'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendored_molinillo.rb:3:in '<top (required)>'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendored_molinillo.rb:3:in 'require_relative'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo.rb:5:in '<top (required)>'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo.rb:5:in 'require_relative'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/resolver.rb:3:in '<top (required)>'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/resolver.rb:3:in 'require_relative'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/dependency_graph.rb:6:in '<top (required)>'
/home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/dependency_graph.rb:6:in 'require_relative'
-- Threading information ---------------------------------------------------
Total ractor count: 1
Ruby thread count for this ractor: 1
-- C level backtrace information -------------------------------------------
Received 712057 of 712057 (100.0%), 0.7 MBs/sec
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_print_backtrace+0x11) [0x7f033feb35d7] vm_dump.c:820
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_vm_bugreport) vm_dump.c:1151
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(bug_report_end+0x0) [0x7f033fca6f5f] error.c:1085
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_bug_without_die) error.c:1085
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(die+0x0) [0x7f033fbc9a97] error.c:1093
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_bug) error.c:1095
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_node_imaginary_literal_val+0x0) [0x7f033fbcb9fe] ruby_parser.c:891
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_iseq_new_with_opt+0x2de) [0x7f033fd187be] iseq.c:996
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(iseq_compile_each0+0xd12) [0x7f033fc22012] compile.c:1492
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(compile_block+0x3a) [0x7f033fc214ca] compile.c:10352
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(iseq_compile_each0) compile.c:10382
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_iseq_compile_node+0xc12) [0x7f033fc32652] compile.c:10352
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_iseq_new_with_opt+0x135) [0x7f033fd18615] iseq.c:1005
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(iseq_compile_each0+0xb43) [0x7f033fc21e43] compile.c:1492
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(iseq_compile_each+0x10) [0x7f033fc31db8] compile.c:10352
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_iseq_compile_node) compile.c:940
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_iseq_new_with_opt+0x135) [0x7f033fd18615] iseq.c:1005
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_iseq_new_top+0x63) [0x7f033fd18993] iseq.c:887
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(load_iseq_eval+0xc0) [0x7f033fd1e001] load.c:772
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(require_internal) load.c:1287
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_require_string_internal+0x34) [0x7f033fd1e162] load.c:1386
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_f_require_relative) load.c:1041
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame_+0x78) [0x7f033fe80875] vm_insnhelper.c:3770
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame) vm_insnhelper.c:3816
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_sendish+0xc7) [0x7f033fe880e7] vm_insnhelper.c:5938
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_exec_core+0xf6) [0x7f033fe93c96] insns.def:918
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_vm_exec+0x1aa) [0x7f033fe9a6fa] vm.c:2567
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(load_iseq_eval+0xa) [0x7f033fd1ddcb] load.c:781
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(require_internal) load.c:1287
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_require_string_internal+0x34) [0x7f033fd1e162] load.c:1386
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_f_require_relative) load.c:1041
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame_+0x78) [0x7f033fe80875] vm_insnhelper.c:3770
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame) vm_insnhelper.c:3816
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_sendish+0xc7) [0x7f033fe880e7] vm_insnhelper.c:5938
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_exec_core+0xf6) [0x7f033fe93c96] insns.def:918
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_vm_exec+0x1aa) [0x7f033fe9a6fa] vm.c:2567
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(load_iseq_eval+0xa) [0x7f033fd1ddcb] load.c:781
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(require_internal) load.c:1287
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_require_string_internal+0x34) [0x7f033fd1e162] load.c:1386
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_f_require_relative) load.c:1041
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame_+0x78) [0x7f033fe80875] vm_insnhelper.c:3770
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame) vm_insnhelper.c:3816
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_sendish+0xc7) [0x7f033fe880e7] vm_insnhelper.c:5938
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_exec_core+0xf6) [0x7f033fe93c96] insns.def:918
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_vm_exec+0x1aa) [0x7f033fe9a6fa] vm.c:2567
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(load_iseq_eval+0xa) [0x7f033fd1ddcb] load.c:781
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(require_internal) load.c:1287
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_require_string_internal+0x34) [0x7f033fd1e162] load.c:1386
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_f_require_relative) load.c:1041
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame_+0x78) [0x7f033fe80875] vm_insnhelper.c:3770
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame) vm_insnhelper.c:3816
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_sendish+0xc7) [0x7f033fe880e7] vm_insnhelper.c:5938
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_exec_core+0xf6) [0x7f033fe93c96] insns.def:918
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_vm_exec+0x1aa) [0x7f033fe9a6fa] vm.c:2567
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(load_iseq_eval+0xa) [0x7f033fd1ddcb] load.c:781
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(require_internal) load.c:1287
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_require_string_internal+0x34) [0x7f033fd1e162] load.c:1386
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_f_require_relative) load.c:1041
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame_+0x76) [0x7f033fe80bdd] vm_insnhelper.c:3770
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame) vm_insnhelper.c:3816
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_other) vm_insnhelper.c:3842
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_method_each_type+0x81) [0x7f033fe9b6a1] vm_insnhelper.c:4749
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_method+0xc4) [0x7f033fe9c3e4] vm_insnhelper.c:4901
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_sendish+0xc7) [0x7f033fe880e7] vm_insnhelper.c:5938
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_exec_core+0xf6) [0x7f033fe93c96] insns.def:918
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_vm_exec+0x1aa) [0x7f033fe9a6fa] vm.c:2567
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(load_iseq_eval+0xa) [0x7f033fd1ddcb] load.c:781
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(require_internal) load.c:1287
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_require_string_internal+0x34) [0x7f033fd1e9ba] load.c:1386
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_require_string) load.c:1379
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame_+0x76) [0x7f033fe80bdd] vm_insnhelper.c:3770
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame) vm_insnhelper.c:3816
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_other) vm_insnhelper.c:3842
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_method_each_type+0x81) [0x7f033fe9b6a1] vm_insnhelper.c:4749
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_alias+0x7e) [0x7f033fe9cb3e] vm_insnhelper.c:4158
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_sendish+0xc7) [0x7f033fe880e7] vm_insnhelper.c:5938
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_exec_core+0xf6) [0x7f033fe93c96] insns.def:918
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_vm_exec+0x1aa) [0x7f033fe9a6fa] vm.c:2567
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call0_body+0x4a1) [0x7f033fea0011] vm_eval.c:225
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_funcallv+0x225) [0x7f033fea4575] vm_eval.c:101
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(autoload_feature_require+0x66) [0x7f033fe74c4e] variable.c:2940
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(autoload_try_load) variable.c:2954
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_ensure+0x12e) [0x7f033fcb2e0e] eval.c:1059
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_autoload_load+0x119) [0x7f033fe730c9] variable.c:3015
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_const_lookup+0x0) [0x7f033fe732eb] variable.c:3117
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_const_search_from) variable.c:3104
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_const_search+0x16) [0x7f033fe73ef5] variable.c:3139
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_const_get_0) variable.c:3066
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_public_const_get_from) variable.c:3168
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_get_ev_const+0x1c) [0x7f033fe84014] vm_insnhelper.c:1133
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_get_ev_const_chain) vm_insnhelper.c:1157
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_vm_opt_getconstant_path) vm_insnhelper.c:6300
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_exec_core+0x24ca) [0x7f033fe9606a] insns.def:263
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_vm_exec+0x1aa) [0x7f033fe9a6fa] vm.c:2567
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(invoke_block_from_c_bh+0x2ca) [0x7f033fe9ea1a] vm.c:1524
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_yield+0xc2) [0x7f033fe9efc2] vm.c:1649
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_ensure+0x12e) [0x7f033fcb2e0e] eval.c:1059
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame_+0x78) [0x7f033fe80875] vm_insnhelper.c:3770
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_call_cfunc_with_frame) vm_insnhelper.c:3816
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_sendish+0xc7) [0x7f033fe880e7] vm_insnhelper.c:5938
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(vm_exec_core+0x16a2) [0x7f033fe95242] insns.def:871
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_vm_exec+0x1aa) [0x7f033fe9a6fa] vm.c:2567
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(rb_ec_exec_node+0xbd) [0x7f033fcb102d] eval.c:281
/home/runner/.rubies/ruby-head/lib/libruby.so.3.4(ruby_run_node+0x83) [0x7f033fcb4b73] eval.c:319
/home/runner/.rubies/ruby-head/bin/ruby(rb_main+0x21) [0x560b28c5e187] ./main.c:45
/home/runner/.rubies/ruby-head/bin/ruby(main) ./main.c:64
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7f033f73a083]
[0x560b28c5e1de]
-- Other runtime information -----------------------------------------------
* Loaded script: /home/runner/.rubies/ruby-head/bin/bundle
* Loaded features:
0 enumerator.so
1 thread.rb
2 fiber.so
3 rational.so
4 complex.so
5 ruby2_keywords.rb
6 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/enc/encdb.so
7 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/enc/trans/transdb.so
8 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/rbconfig.rb
9 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/compatibility.rb
10 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/defaults.rb
11 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/deprecate.rb
12 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/errors.rb
13 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/target_rbconfig.rb
14 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/unknown_command_spell_checker.rb
15 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/exceptions.rb
16 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/basic_specification.rb
17 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/stub_specification.rb
18 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/platform.rb
19 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/specification_record.rb
20 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/util/list.rb
21 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/version.rb
22 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/requirement.rb
23 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/specification.rb
24 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/util.rb
25 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/dependency.rb
26 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/core_ext/kernel_gem.rb
27 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/monitor.so
28 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/monitor.rb
29 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems.rb
30 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/bundled_gems.rb
31 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/path_support.rb
32 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/error_highlight/version.rb
33 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/error_highlight/base.rb
34 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/error_highlight/formatter.rb
35 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/error_highlight/core_ext.rb
36 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/error_highlight.rb
37 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/version.rb
38 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/core_ext/name_error.rb
39 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/levenshtein.rb
40 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/jaro_winkler.rb
41 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/spell_checker.rb
42 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
43 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
44 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/name_error_checkers.rb
45 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/method_name_checker.rb
46 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/key_error_checker.rb
47 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/null_checker.rb
48 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/tree_spell_checker.rb
49 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/require_path_checker.rb
50 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/spell_checkers/pattern_key_name_checker.rb
51 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean/formatter.rb
52 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/did_you_mean.rb
53 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/syntax_suggest/core_ext.rb
54 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/bundler_version_finder.rb
55 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/tsort/lib/tsort.rb
56 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendored_tsort.rb
57 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/request_set/gem_dependency_api.rb
58 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/request_set/lockfile/parser.rb
59 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/request_set/lockfile/tokenizer.rb
60 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/request_set/lockfile.rb
61 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/request_set.rb
62 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/gem_metadata.rb
63 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
64 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/errors.rb
65 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/action.rb
66 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb
67 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
68 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb
69 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb
70 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb
71 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb
72 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/log.rb
* Process memory map:
560b28c5d000-560b28c5e000 r--p 00000000 08:11 547248 /home/runner/.rubies/ruby-head/bin/ruby
560b28c5e000-560b28c5f000 r-xp 00001000 08:11 547248 /home/runner/.rubies/ruby-head/bin/ruby
560b28c5f000-560b28c60000 r--p 00002000 08:11 547248 /home/runner/.rubies/ruby-head/bin/ruby
560b28c60000-560b28c61000 r--p 00002000 08:11 547248 /home/runner/.rubies/ruby-head/bin/ruby
560b28c61000-560b28c62000 rw-p 00003000 08:11 547248 /home/runner/.rubies/ruby-head/bin/ruby
560b2ab43000-560b2b06a000 rw-p 00000000 00:00 0 [heap]
7f0320703000-7f03208f3000 r--s 00000000 08:11 4758 /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f03208f3000-7f03223cf000 rw-p 00000000 00:00 0
7f03223cf000-7f0323720000 r--s 00000000 08:11 544181 /home/runner/.rubies/ruby-head/lib/libruby.so.3.4.0
7f0323720000-7f0323730000 rw-p 00000000 00:00 0
7f03237ea000-7f0323820000 r--s 00000000 08:11 547248 /home/runner/.rubies/ruby-head/bin/ruby
7f0323820000-7f0323860000 rw-p 00000000 00:00 0
7f0323870000-7f03239b0000 rw-p 00000000 00:00 0
7f03239bf000-7f03239c0000 ---p 00000000 00:00 0
7f03239c0000-7f0323a61000 rw-p 00000000 00:00 0
7f0323a61000-7f0323a62000 ---p 00000000 00:00 0
7f0323a62000-7f0323b03000 rw-p 00000000 00:00 0
7f0323b03000-7f0323b04000 ---p 00000000 00:00 0
7f0323b04000-7f0323ba5000 rw-p 00000000 00:00 0
7f0323ba5000-7f0323ba6000 ---p 00000000 00:00 0
7f0323ba6000-7f0323c47000 rw-p 00000000 00:00 0
7f0323c47000-7f0323c48000 ---p 00000000 00:00 0
7f0323c48000-7f0323ce9000 rw-p 00000000 00:00 0
7f0323ce9000-7f0323cea000 ---p 00000000 00:00 0
7f0323cea000-7f0323d8b000 rw-p 00000000 00:00 0
7f0323d8b000-7f0323d8c000 ---p 00000000 00:00 0
7f0323d8c000-7f0323e2d000 rw-p 00000000 00:00 0
7f0323e2d000-7f0323e2e000 ---p 00000000 00:00 0
7f0323e2e000-7f0323ecf000 rw-p 00000000 00:00 0
7f0323ecf000-7f0323ed0000 ---p 00000000 00:00 0
7f0323ed0000-7f0323f71000 rw-p 00000000 00:00 0
7f0323f71000-7f0323f72000 ---p 00000000 00:00 0
7f0323f72000-7f0324013000 rw-p 00000000 00:00 0
7f0324013000-7f0324014000 ---p 00000000 00:00 0
7f0324014000-7f03240b5000 rw-p 00000000 00:00 0
7f03240b5000-7f03240b6000 ---p 00000000 00:00 0
7f03240b6000-7f0324157000 rw-p 00000000 00:00 0
7f0324157000-7f0324158000 ---p 00000000 00:00 0
7f0324158000-7f03241f9000 rw-p 00000000 00:00 0
7f03241f9000-7f03241fa000 ---p 00000000 00:00 0
7f03241fa000-7f032429b000 rw-p 00000000 00:00 0
7f032429b000-7f032429c000 ---p 00000000 00:00 0
7f032429c000-7f032433d000 rw-p 00000000 00:00 0
7f032433d000-7f032433e000 ---p 00000000 00:00 0
7f032433e000-7f03243df000 rw-p 00000000 00:00 0
7f03243df000-7f03243e0000 ---p 00000000 00:00 0
7f03243e0000-7f0324481000 rw-p 00000000 00:00 0
7f0324481000-7f0324482000 ---p 00000000 00:00 0
7f0324482000-7f0324523000 rw-p 00000000 00:00 0
7f0324523000-7f0324524000 ---p 00000000 00:00 0
7f0324524000-7f03245c5000 rw-p 00000000 00:00 0
7f03245c5000-7f03245c6000 ---p 00000000 00:00 0
7f03245c6000-7f0324667000 rw-p 00000000 00:00 0
7f0324667000-7f0324668000 ---p 00000000 00:00 0
7f0324668000-7f0324709000 rw-p 00000000 00:00 0
7f0324709000-7f032470a000 ---p 00000000 00:00 0
7f032470a000-7f03247ab000 rw-p 00000000 00:00 0
7f03247ab000-7f03247ac000 ---p 00000000 00:00 0
7f03247ac000-7f032484d000 rw-p 00000000 00:00 0
7f032484d000-7f032484e000 ---p 00000000 00:00 0
7f032484e000-7f03248ef000 rw-p 00000000 00:00 0
7f03248ef000-7f03248f0000 ---p 00000000 00:00 0
7f03248f0000-7f0324991000 rw-p 00000000 00:00 0
7f0324991000-7f0324992000 ---p 00000000 00:00 0
7f0324992000-7f0324a33000 rw-p 00000000 00:00 0
7f0324a33000-7f0324a34000 ---p 00000000 00:00 0
7f0324a34000-7f0324ad5000 rw-p 00000000 00:00 0
7f0324ad5000-7f0324ad6000 ---p 00000000 00:00 0
7f0324ad6000-7f0324b77000 rw-p 00000000 00:00 0
7f0324b77000-7f0324b78000 ---p 00000000 00:00 0
7f0324b78000-7f0324c19000 rw-p 00000000 00:00 0
7f0324c19000-7f0324c1a000 ---p 00000000 00:00 0
7f0324c1a000-7f0324cbb000 rw-p 00000000 00:00 0
7f0324cbb000-7f0324cbc000 ---p 00000000 00:00 0
7f0324cbc000-7f0324d5d000 rw-p 00000000 00:00 0
7f0324d5d000-7f0324d5e000 ---p 00000000 00:00 0
7f0324d5e000-7f0324dff000 rw-p 00000000 00:00 0
7f0324dff000-7f0324e00000 ---p 00000000 00:00 0
7f0324e00000-7f0325e50000 rw-p 00000000 00:00 0
7f0325e5f000-7f033f2d0000 rw-p 00000000 00:00 0
7f033f2d3000-7f033f2d4000 r--p 00000000 08:11 544385 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/monitor.so
7f033f2d4000-7f033f2d5000 r-xp 00001000 08:11 544385 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/monitor.so
7f033f2d5000-7f033f2d6000 r--p 00002000 08:11 544385 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/monitor.so
7f033f2d6000-7f033f2d7000 r--p 00002000 08:11 544385 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/monitor.so
7f033f2d7000-7f033f2d8000 rw-p 00003000 08:11 544385 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/monitor.so
7f033f2d8000-7f033f2d9000 r--p 00000000 08:11 544342 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/enc/trans/transdb.so
7f033f2d9000-7f033f2db000 r-xp 00001000 08:11 544342 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/enc/trans/transdb.so
7f033f2db000-7f033f2dc000 r--p 00003000 08:11 544342 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/enc/trans/transdb.so
7f033f2dc000-7f033f2dd000 r--p 00003000 08:11 544342 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/enc/trans/transdb.so
7f033f2dd000-7f033f2de000 rw-p 00004000 08:11 544342 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/enc/trans/transdb.so
7f033f2de000-7f033f3df000 rw-p 00000000 00:00 0
7f033f3df000-7f033f411000 r--p 00000000 08:11 6142 /usr/lib/locale/C.UTF-8/LC_CTYPE
7f033f411000-7f033f6f7000 r--p 00000000 08:11 6136 /usr/lib/locale/locale-archive
7f033f6f7000-7f033f6fb000 rw-p 00000000 00:00 0
7f033f6fb000-7f033f6fe000 r--p 00000000 08:11 4760 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7f033f6fe000-7f033f710000 r-xp 00003000 08:11 4760 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7f033f710000-7f033f714000 r--p 00015000 08:11 4760 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7f033f714000-7f033f715000 r--p 00018000 08:11 4760 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7f033f715000-7f033f716000 rw-p 00019000 08:11 4760 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7f033f716000-7f033f738000 r--p 00000000 08:11 4758 /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f033f738000-7f033f8b0000 r-xp 00022000 08:11 4758 /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f033f8b0000-7f033f8fe000 r--p 0019a000 08:11 4758 /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f033f8fe000-7f033f902000 r--p 001e7000 08:11 4758 /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f033f902000-7f033f904000 rw-p 001eb000 08:11 4758 /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f033f904000-7f033f908000 rw-p 00000000 00:00 0
7f033f908000-7f033f90e000 r--p 00000000 08:11 4774 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
7f033f90e000-7f033f91f000 r-xp 00006000 08:11 4774 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
7f033f91f000-7f033f925000 r--p 00017000 08:11 4774 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
7f033f925000-7f033f926000 r--p 0001c000 08:11 4774 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
7f033f926000-7f033f927000 rw-p 0001d000 08:11 4774 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
7f033f927000-7f033f92b000 rw-p 00000000 00:00 0
7f033f92b000-7f033f938000 r--p 00000000 08:11 4763 /usr/lib/x86_64-linux-gnu/libm-2.31.so
7f033f938000-7f033f9df000 r-xp 0000d000 08:11 4763 /usr/lib/x86_64-linux-gnu/libm-2.31.so
7f033f9df000-7f033fa78000 r--p 000b4000 08:11 4763 /usr/lib/x86_64-linux-gnu/libm-2.31.so
7f033fa78000-7f033fa79000 r--p 0014c000 08:11 4763 /usr/lib/x86_64-linux-gnu/libm-2.31.so
7f033fa79000-7f033fa7a000 rw-p 0014d000 08:11 4763 /usr/lib/x86_64-linux-gnu/libm-2.31.so
7f033fa7a000-7f033fa7c000 rw-p 00000000 00:00 0
7f033fa7c000-7f033fa7e000 r--p 00000000 08:11 3497 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7f033fa7e000-7f033fa93000 r-xp 00002000 08:11 3497 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7f033fa93000-7f033faad000 r--p 00017000 08:11 3497 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7f033faad000-7f033faae000 r--p 00030000 08:11 3497 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7f033faae000-7f033faaf000 rw-p 00031000 08:11 3497 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7f033faaf000-7f033fab7000 rw-p 00000000 00:00 0
7f033fab7000-7f033fab8000 r--p 00000000 08:11 4762 /usr/lib/x86_64-linux-gnu/libdl-2.31.so
7f033fab8000-7f033faba000 r-xp 00001000 08:11 4762 /usr/lib/x86_64-linux-gnu/libdl-2.31.so
7f033faba000-7f033fabb000 r--p 00003000 08:11 4762 /usr/lib/x86_64-linux-gnu/libdl-2.31.so
7f033fabb000-7f033fabc000 r--p 00003000 08:11 4762 /usr/lib/x86_64-linux-gnu/libdl-2.31.so
7f033fabc000-7f033fabd000 rw-p 00004000 08:11 4762 /usr/lib/x86_64-linux-gnu/libdl-2.31.so
7f033fabd000-7f033fac7000 r--p 00000000 08:11 4632 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.0
7f033fac7000-7f033fb27000 r-xp 0000a000 08:11 4632 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.0
7f033fb27000-7f033fb3e000 r--p 0006a000 08:11 4632 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.0
7f033fb3e000-7f033fb3f000 ---p 00081000 08:11 4632 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.0
7f033fb3f000-7f033fb40000 r--p 00081000 08:11 4632 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.0
7f033fb40000-7f033fb41000 rw-p 00082000 08:11 4632 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.0
7f033fb41000-7f033fb43000 r--p 00000000 08:11 4776 /usr/lib/x86_64-linux-gnu/librt-2.31.so
7f033fb43000-7f033fb47000 r-xp 00002000 08:11 4776 /usr/lib/x86_64-linux-gnu/librt-2.31.so
7f033fb47000-7f033fb49000 r--p 00006000 08:11 4776 /usr/lib/x86_64-linux-gnu/librt-2.31.so
7f033fb49000-7f033fb4a000 r--p 00007000 08:11 4776 /usr/lib/x86_64-linux-gnu/librt-2.31.so
7f033fb4a000-7f033fb4b000 rw-p 00008000 08:11 4776 /usr/lib/x86_64-linux-gnu/librt-2.31.so
7f033fb4b000-7f033fb4d000 r--p 00000000 08:11 3846 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7f033fb4d000-7f033fb5e000 r-xp 00002000 08:11 3846 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7f033fb5e000-7f033fb64000 r--p 00013000 08:11 3846 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7f033fb64000-7f033fb65000 ---p 00019000 08:11 3846 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7f033fb65000-7f033fb66000 r--p 00019000 08:11 3846 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7f033fb66000-7f033fb67000 rw-p 0001a000 08:11 3846 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7f033fb6a000-7f033fb6b000 r--p 00000000 08:11 544361 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/enc/encdb.so
7f033fb6b000-7f033fb6c000 r-xp 00001000 08:11 544361 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/enc/encdb.so
7f033fb6c000-7f033fb6d000 r--p 00002000 08:11 544361 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/enc/encdb.so
7f033fb6d000-7f033fb6e000 r--p 00002000 08:11 544361 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/enc/encdb.so
7f033fb6e000-7f033fb6f000 rw-p 00003000 08:11 544361 /home/runner/.rubies/ruby-head/lib/ruby/3.4.0+0/x86_64-linux/enc/encdb.so
7f033fb6f000-7f033fb76000 r--s 00000000 08:11 3766 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f033fb76000-7f033fbc2000 r--p 00000000 08:11 544181 /home/runner/.rubies/ruby-head/lib/libruby.so.3.4.0
7f033fbc2000-7f0340000000 r-xp 0004c000 08:11 544181 /home/runner/.rubies/ruby-head/lib/libruby.so.3.4.0
7f0340000000-7f034019b000 r--p 0048a000 08:11 544181 /home/runner/.rubies/ruby-head/lib/libruby.so.3.4.0
7f034019b000-7f03401b3000 r--p 00624000 08:11 544181 /home/runner/.rubies/ruby-head/lib/libruby.so.3.4.0
7f03401b3000-7f03401b7000 rw-p 0063c000 08:11 544181 /home/runner/.rubies/ruby-head/lib/libruby.so.3.4.0
7f03401b7000-7f03401ce000 rw-p 00000000 00:00 0
7f03401ce000-7f03401cf000 r--p 00000000 08:11 4742 /usr/lib/x86_64-linux-gnu/ld-2.31.so
7f03401cf000-7f03401f2000 r-xp 00001000 08:11 4742 /usr/lib/x86_64-linux-gnu/ld-2.31.so
7f03401f2000-7f03401fa000 r--p 00024000 08:11 4742 /usr/lib/x86_64-linux-gnu/ld-2.31.so
7f03401fb000-7f03401fc000 r--p 0002c000 08:11 4742 /usr/lib/x86_64-linux-gnu/ld-2.31.so
7f03401fc000-7f03401fd000 rw-p 0002d000 08:11 4742 /usr/lib/x86_64-linux-gnu/ld-2.31.so
7f03401fd000-7f03401fe000 rw-p 00000000 00:00 0
7ffc0c271000-7ffc0d270000 rw-p 00000000 00:00 0 [stack]
7ffc0d357000-7ffc0d35b000 r--p 00000000 00:00 0 [vvar]
7ffc0d35b000-7ffc0d35d000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]
```
--
https://bugs.ruby-lang.org/
3
2