ruby-core
Threads by month
- ----- 2026 -----
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- 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 2025
- 2 participants
- 175 discussions
[ruby-core:115203] [Ruby master Bug#19981] bootstraptest/test_ractor.rb: Segmentation fault on arm32
by jaruga (Jun Aruga) 02 Jul '25
by jaruga (Jun Aruga) 02 Jul '25
02 Jul '25
Issue #19981 has been reported by jaruga (Jun Aruga).
----------------------------------------
Bug #19981: bootstraptest/test_ractor.rb: Segmentation fault on arm32
https://bugs.ruby-lang.org/issues/19981
* Author: jaruga (Jun Aruga)
* Status: Open
* Priority: Normal
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
I faced the following segmentation fault on Ubuntu jammy arm32 (emulated environment by `SETARCH='setarch linux32 --verbose --32bit'`) in both Travis CI arm64 [log](https://app.travis-ci.com/github/ruby/ruby/jobs/612418476#L2422
) and RubyCI arm64-neoverse server.
I tested it on the latest ruby master branch `14fa5e39d72c84d3e12e10dc5d77a6e6200c10f5`.
I was able to reproduce this issue on RubyCI arm64-neoverse server, and prepared the reproducing script. So, you can try to debug on the server.
It seems that the `-O3` flag triggered the issue. Because I didn't see the issue when Travis CI setting `- optflags=-O1` in `.travis.yml` on the current master branch.
https://github.com/junaruga/report-ruby-ractor-segmentation-fault
```
+ arm-linux-gnueabihf-gcc --version
arm-linux-gnueabihf-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
+ setarch linux32 --verbose --32bit make -s test
Switching on ADDR_LIMIT_32BIT.
Execute command `make'.
Fstderr output is not empty
<internal:ractor>:760: [BUG] Segmentation fault at 0x0000000c
ruby 3.3.0dev (2023-10-30T09:27:06Z master 14fa5e39d7) [armv8l-linux-eabihf]
-- Control frame information -----------------------------------------------
c:0005 p:0003 s:0021 e:000020 METHOD <internal:ractor>:760
c:0004 p:0008 s:0014 e:000013 BLOCK bootstraptest.test_ractor.rb_541_1260.rb:4
c:0003 p:0018 s:0011 e:000010 METHOD <internal:kernel>:187
c:0002 p:0004 s:0006 e:000005 BLOCK bootstraptest.test_ractor.rb_541_1260.rb:3 [FINISH]
c:0001 p:---- s:0003 e:000002 DUMMY [FINISH]
-- Ruby level backtrace information ----------------------------------------
bootstraptest.test_ractor.rb_541_1260.rb:3:in `block in <main>'
<internal:kernel>:187:in `loop'
bootstraptest.test_ractor.rb_541_1260.rb:4:in `block (2 levels) in <main>'
<internal:ractor>:760:in `yield'
-- Threading information ---------------------------------------------------
Total ractor count: 2
Ruby thread count for this ractor: 1
-- Machine register context ------------------------------------------------
r0: 0x00000000 r1: 0x00000001 r2: 0x00000007 r3: 0x00000000 r4: 0x00c935c8
r5: 0x00000002 r6: 0x00000002 r7: 0x00000000 r8: 0x00000004 r9: 0x00c646b0
r10: 0x00000002 sp: 0xd5d91c90 fau: 0x0000000c
-- Other runtime information -----------------------------------------------
* Loaded script: bootstraptest.test_ractor.rb_541_1260.rb
* Loaded features:
0 enumerator.so
1 thread.rb
2 fiber.so
3 rational.so
4 complex.so
5 ruby2_keywords.rb
6 /home/jaruga/git/ruby/ruby/build/.ext/armv8l-linux-eabihf/enc/encdb.so
7 /home/jaruga/git/ruby/ruby/build/.ext/armv8l-linux-eabihf/enc/trans/transdb.so
* Process memory map:
00640000-0093a000 r-xp 00000000 103:03 29263803 /home/jaruga/git/ruby/ruby/build/ruby
0094a000-0094e000 r--p 002fa000 103:03 29263803 /home/jaruga/git/ruby/ruby/build/ruby
0094e000-0094f000 rw-p 002fe000 103:03 29263803 /home/jaruga/git/ruby/ruby/build/ruby
0094f000-00956000 rw-p 00000000 00:00 0
00bf3000-00cba000 rw-p 00000000 00:00 0 [heap]
d5700000-d5721000 rw-p 00000000 00:00 0
d5721000-d5800000 ---p 00000000 00:00 0
d5900000-d5921000 rw-p 00000000 00:00 0
d5921000-d5a00000 ---p 00000000 00:00 0
d5a00000-d5a21000 rw-p 00000000 00:00 0
d5a21000-d5b00000 ---p 00000000 00:00 0
d5b00000-d5b21000 rw-p 00000000 00:00 0
d5b21000-d5c00000 ---p 00000000 00:00 0
d5c5f000-d5c60000 ---p 00000000 00:00 0
d5c60000-d5c90000 rw-p 00000000 00:00 0
d5c9f000-d5ca0000 ---p 00000000 00:00 0
d5ca0000-d5cd0000 rw-p 00000000 00:00 0
d5cde000-d5cdf000 ---p 00000000 00:00 0
d5cdf000-d5cef000 rw-p 00000000 00:00 0
d5cef000-d5cf0000 ---p 00000000 00:00 0
d5cf0000-d5d81000 rw-p 00000000 00:00 0
d5d81000-d5d82000 ---p 00000000 00:00 0
d5d82000-d5e12000 rw-p 00000000 00:00 0
d5e12000-d5e13000 ---p 00000000 00:00 0
d5e13000-d5ea3000 rw-p 00000000 00:00 0
d5ea3000-d5ea4000 ---p 00000000 00:00 0
d5ea4000-d5f34000 rw-p 00000000 00:00 0
d5f34000-d5f35000 ---p 00000000 00:00 0
d5f35000-d5fc5000 rw-p 00000000 00:00 0
d5fc5000-d5fc6000 ---p 00000000 00:00 0
d5fc6000-d6056000 rw-p 00000000 00:00 0
d6056000-d6057000 ---p 00000000 00:00 0
d6057000-d60e7000 rw-p 00000000 00:00 0
d60e7000-d60e8000 ---p 00000000 00:00 0
d60e8000-d6178000 rw-p 00000000 00:00 0
d6178000-d6179000 ---p 00000000 00:00 0
d6179000-d6209000 rw-p 00000000 00:00 0
d6209000-d620a000 ---p 00000000 00:00 0
d620a000-d629a000 rw-p 00000000 00:00 0
d629a000-d629b000 ---p 00000000 00:00 0
d629b000-d632b000 rw-p 00000000 00:00 0
d632b000-d632c000 ---p 00000000 00:00 0
d632c000-f5d10000 rw-p 00000000 00:00 0
f5d10000-f5d12000 r-xp 00000000 103:03 29263555 /home/jaruga/git/ruby/ruby/build/.ext/armv8l-linux-eabihf/enc/trans/transdb.so
f5d12000-f5d21000 ---p 00002000 103:03 29263555 /home/jaruga/git/ruby/ruby/build/.ext/armv8l-linux-eabihf/enc/trans/transdb.so
f5d21000-f5d22000 r--p 00001000 103:03 29263555 /home/jaruga/git/ruby/ruby/build/.ext/armv8l-linux-eabihf/enc/trans/transdb.so
f5d22000-f5d23000 rw-p 00002000 103:03 29263555 /home/jaruga/git/ruby/ruby/build/.ext/armv8l-linux-eabihf/enc/trans/transdb.so
f5d30000-f5d32000 r-xp 00000000 103:03 29263548 /home/jaruga/git/ruby/ruby/build/.ext/armv8l-linux-eabihf/enc/encdb.so
f5d32000-f5d41000 ---p 00002000 103:03 29263548 /home/jaruga/git/ruby/ruby/build/.ext/armv8l-linux-eabihf/enc/encdb.so
f5d41000-f5d42000 r--p 00001000 103:03 29263548 /home/jaruga/git/ruby/ruby/build/.ext/armv8l-linux-eabihf/enc/encdb.so
f5d42000-f5d43000 rw-p 00002000 103:03 29263548 /home/jaruga/git/ruby/ruby/build/.ext/armv8l-linux-eabihf/enc/encdb.so
f5d4f000-f5d50000 ---p 00000000 00:00 0
f5d50000-f5d71000 rw-p 00000000 00:00 0
f5d71000-f5d72000 ---p 00000000 00:00 0
f5d72000-f5d93000 rw-p 00000000 00:00 0
f5d93000-f5d94000 ---p 00000000 00:00 0
f5d94000-f5db5000 rw-p 00000000 00:00 0
f5db5000-f5db6000 ---p 00000000 00:00 0
f5db6000-f5dd7000 rw-p 00000000 00:00 0
f5dd7000-f5dd8000 ---p 00000000 00:00 0
f5dd8000-f5df9000 rw-p 00000000 00:00 0
f5df9000-f5dfa000 ---p 00000000 00:00 0
f5dfa000-f5e1b000 rw-p 00000000 00:00 0
f5e1b000-f5e1c000 ---p 00000000 00:00 0
f5e1c000-f5e3d000 rw-p 00000000 00:00 0
f5e3d000-f5e3e000 ---p 00000000 00:00 0
f5e3e000-f5e5f000 rw-p 00000000 00:00 0
f5e5f000-f5e60000 ---p 00000000 00:00 0
f5e60000-f66a0000 rw-p 00000000 00:00 0
f66af000-f73b0000 rw-p 00000000 00:00 0
f73b5000-f7436000 rw-p 00000000 00:00 0
f7436000-f76b0000 r--p 0006f000 103:03 11802136 /usr/lib/locale/locale-archive
f76b0000-f78b0000 r--p 00000000 103:03 11802136 /usr/lib/locale/locale-archive
f78b0000-f79bc000 r-xp 00000000 103:03 11670018 /usr/lib/arm-linux-gnueabihf/libc.so.6
f79bc000-f79cc000 ---p 0010c000 103:03 11670018 /usr/lib/arm-linux-gnueabihf/libc.so.6
f79cc000-f79ce000 r--p 0010c000 103:03 11670018 /usr/lib/arm-linux-gnueabihf/libc.so.6
f79ce000-f79cf000 rw-p 0010e000 103:03 11670018 /usr/lib/arm-linux-gnueabihf/libc.so.6
f79cf000-f79d9000 rw-p 00000000 00:00 0
f79e0000-f7a21000 r-xp 00000000 103:03 11670021 /usr/lib/arm-linux-gnueabihf/libm.so.6
f7a21000-f7a30000 ---p 00041000 103:03 11670021 /usr/lib/arm-linux-gnueabihf/libm.so.6
f7a30000-f7a31000 r--p 00040000 103:03 11670021 /usr/lib/arm-linux-gnueabihf/libm.so.6
f7a31000-f7a32000 rw-p 00041000 103:03 11670021 /usr/lib/arm-linux-gnueabihf/libm.so.6
f7a40000-f7a6b000 r-xp 00000000 103:03 11670013 /usr/lib/arm-linux-gnueabihf/libcrypt.so.1.1.0
f7a6b000-f7a7b000 ---p 0002b000 103:03 11670013 /usr/lib/arm-linux-gnueabihf/libcrypt.so.1.1.0
f7a7b000-f7a7c000 r--p 0002b000 103:03 11670013 /usr/lib/arm-linux-gnueabihf/libcrypt.so.1.1.0
f7a7c000-f7a7d000 rw-p 0002c000 103:03 11670013 /usr/lib/arm-linux-gnueabihf/libcrypt.so.1.1.0
f7a7d000-f7a85000 rw-p 00000000 00:00 0
f7a88000-f7aa7000 r-xp 00000000 103:03 11670015 /usr/lib/arm-linux-gnueabihf/ld-linux-armhf.so.3
f7aac000-f7ab3000 r--s 00000000 103:03 11670285 /usr/lib/arm-linux-gnueabihf/gconv/gconv-modules.cache
f7ab3000-f7ab5000 rw-p 00000000 00:00 0
f7ab5000-f7ab6000 r-xp 00000000 00:00 0 [sigpage]
f7ab6000-f7ab8000 r--p 0001e000 103:03 11670015 /usr/lib/arm-linux-gnueabihf/ld-linux-armhf.so.3
f7ab8000-f7ab9000 rw-p 00020000 103:03 11670015 /usr/lib/arm-linux-gnueabihf/ld-linux-armhf.so.3
ff7dd000-fffdc000 rw-p 00000000 00:00 0 [stack]
ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors]
```
--
https://bugs.ruby-lang.org/
2
1
[ruby-core:120601] [Ruby master Bug#21024] Ruby including <cstdbool> generates compilation warning with GCC 15, header is deprecated in C++17,
by jprokop (Jarek Prokop) 02 Jul '25
by jprokop (Jarek Prokop) 02 Jul '25
02 Jul '25
Issue #21024 has been reported by jprokop (Jarek Prokop).
----------------------------------------
Bug #21024: Ruby including <cstdbool> generates compilation warning with GCC 15, header is deprecated in C++17,
https://bugs.ruby-lang.org/issues/21024
* Author: jprokop (Jarek Prokop)
* Status: Open
* ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-linux]
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
C++ compiler in GCC 15 now generates a warning when trying to include `<cstdbool>`.
This file is being included when compiling with C++ compiler from `include/ruby/internal/stdbool.h`.
In C++, true, false and bool are keywords so including headers for boolean definitions should not be necessary.
Alternatively, just including <stdbool.h> should be sufficient as that is what the `#include <cstdbool>` results in with GCC.
Simplest fix is just deleting the lines that are including the file (see attached patch and comments 2 and 3 from downstream issue linked in the bottom section "Additional info").
Considering the wide array of compilers Ruby aims to support to be compiled with I wanted to make an issue here first to make sure
there isn't a supported compiler that wouldn't agree with this approach.
Reproduction:
Obtain GCC 15, for Fedora Rawhide there is currently a repo of maintainer, I use it in Fedora Rawhide container (podman is replaceable for docker here):
```
host$ podman run -it --rm registry.fedoraproject.org/fedora:rawhide bash
container# echo "[gcc_15]
name=pre-release GCC 15 Repo
baseurl=https://fedorapeople.org/~dmalcolm/gcc/gcc-15-mass-prebuild/$basear…
type=rpm-md
skip_if_unavailable=True
gpgcheck=0
repo_gpgcheck=0
enabled=1
enabled_metadata=1" > /etc/yum.repos.d/gcc_15.repo
container# dnf install --assumeyes g++ ruby-devel
```
^ should install `g++-15.0.0` and `ruby.h` needed for the reproducer.
Note: that baseurl is a custom space of a Fedora maintainer.
Have a file named for example `main.cpp`:
``` cpp
#include <ruby.h>
int main(void) {
return 0;
}
```
Compile with GCC 15
```
$ g++ main.cpp
```
Current behavior:
Compiling throws warning:
```
$ g++ main.cpp
In file included from /usr/include/ruby/internal/stdbool.h:30,
from /usr/include/ruby/backward/2/bool.h:22,
from /usr/include/ruby/defines.h:74,
from /usr/include/ruby/ruby.h:25,
from /usr/include/ruby.h:38,
from reproducer.cpp:1:
/usr/include/c++/15/cstdbool:48:6: warning: #warning "<cstdbool> is deprecated in C++17, remove the #include" [-Wcpp]
48 | # warning "<cstdbool> is deprecated in C++17, remove the #include"
| ^~~~~~~
```
Expected:
Compilation throws no warnings and compiles the executable:
```
$ g++ reproducer.cpp
$ echo $?
0
```
Additional info:
```
$ g++ --version
g++ (GCC) 15.0.0 20241203 (Red Hat 15.0.0-0)
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
```
This was met during recompilation of libdnf5 that includes `-Werror` in their compilation flags,
See downstream discussion: https://bugzilla.redhat.com/show_bug.cgi?id=2336567
Considering the inclusion of the <cstdbool> throws me up to 5 years ago back ( https://github.com/ruby/ruby/blob/9e6e39c3512f7a962c44dc3729c98a0f8be90341/… ), I assume this warning will be the case with older rubies as well as newest master when using GCC 15.
---Files--------------------------------
0001-Stop-including-cstdbool-in-include-ruby-internal-std.patch (869 Bytes)
--
https://bugs.ruby-lang.org/
5
6
[ruby-core:122636] [Ruby Bug#21495] IO.read_nonblock does not work under a rescue IO::TimeoutError
by dE (dE Techno) 01 Jul '25
by dE (dE Techno) 01 Jul '25
01 Jul '25
Issue #21495 has been reported by dE (dE Techno).
----------------------------------------
Bug #21495: IO.read_nonblock does not work under a rescue IO::TimeoutError
https://bugs.ruby-lang.org/issues/21495
* Author: dE (dE Techno)
* Status: Open
* ruby -v: de@myworkstation ~/docs/Practice/Software/ruby $ ruby -v ruby 3.2.8 (2025-03-26 revision 13f495dc2c) [x86_64-linux]
* Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
In this particular code --
``` ruby
execArg = 'echo testwrite; sleep 5'
tofuProcess = IO.popen(execArg, 'r')
puts 'executed tofu process.'
tofuProcess.timeout=2
begin
tofuOut = tofuProcess.read
rescue IO::TimeoutError
puts 'rescue occured'
begin
tofuOut = tofuProcess.read_nonblock(1)
rescue IO::EAGAINWaitReadable
puts 'no data in read buffer!'
end
tofuProcess.close
puts 'process closed'
end
```
tofuProcess.read_nonblock(1) must return a character because the underlying process has produced an output. But it raises a IO::EAGAINWaitReadable exception instead which does not happen outside a rescue IO::TimeoutError block
--
https://bugs.ruby-lang.org/
1
0
[ruby-core:122625] [Ruby Bug#21461] Heap-buffer-overflow in Prism when encoding magic comment is invalid and assignment is incomplete
by bendrissou (Bachir Bendrissou) 01 Jul '25
by bendrissou (Bachir Bendrissou) 01 Jul '25
01 Jul '25
Issue #21461 has been reported by bendrissou (Bachir Bendrissou).
----------------------------------------
Bug #21461: Heap-buffer-overflow in Prism when encoding magic comment is invalid and assignment is incomplete
https://bugs.ruby-lang.org/issues/21461
* Author: bendrissou (Bachir Bendrissou)
* Status: Open
* ruby -v: 3.5.0
* Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
### Description
An AddressSanitizer (ASan) heap-buffer-overflow occurs in Ruby when:
1. The file contains an invalid magic encoding comment, and
2. A line with incomplete assignment (e.g. missing right-hand side).
This leads to a crash in pm_parse_errors_format_sort, caused by prism_compile.c accessing a freed or uninitialized memory region.
### Input
```
# -*- coding: abc -*-
$a =
```
### Expected output
```
unknown or invalid encoding in the magic comment (ArgumentError)
```
### ASAN output
```
=================================================================
==719525==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60300002af88 at pc 0x559137d4f16a bp 0x7ffd85551fe0 sp 0x7ffd85551fd0
WRITE of size 8 at 0x60300002af88 thread T0
#0 0x559137d4f169 in pm_parse_errors_format_sort ../prism_compile.c:10620
#1 0x559137d4f169 in pm_parse_errors_format ../prism_compile.c:10687
#2 0x559137e08753 in pm_parse_process_error ../prism_compile.c:10999
#3 0x559137e08753 in pm_parse_process ../prism_compile.c:11105
#4 0x559137e7811d in pm_parse_file ../prism_compile.c:11391
#5 0x559137960743 in prism_script ../ruby.c:2236
#6 0x559137960743 in process_options ../ruby.c:2563
#7 0x55913796228f in ruby_process_options ../ruby.c:3199
#8 0x5591376a2406 in ruby_options ../eval.c:117
#9 0x5591376937fe in rb_main ../main.c:42
#10 0x5591376937fe in main ../main.c:62
#11 0x7f69beed2082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082)
#12 0x559137694dcd in _start (/home/program/build/ruby+0x15cdcd)
0x60300002af88 is located 0 bytes to the right of 24-byte region [0x60300002af70,0x60300002af88)
allocated by thread T0 here:
#0 0x7f69bf427a06 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:153
#1 0x5591377119bd in calloc1 ../gc/default/default.c:1490
#2 0x5591377119bd in rb_gc_impl_calloc ../gc/default/default.c:8162
#3 0x5591377119bd in ruby_xcalloc_body ../gc.c:5327
SUMMARY: AddressSanitizer: heap-buffer-overflow ../prism_compile.c:10620 in pm_parse_errors_format_sort
Shadow bytes around the buggy address:
0x0c067fffd5a0: 00 00 00 00 fa fa 00 00 00 fa fa fa 00 00 00 fa
0x0c067fffd5b0: fa fa fd fd fd fa fa fa 00 00 00 fa fa fa 00 00
0x0c067fffd5c0: 00 fa fa fa 00 00 00 fa fa fa 00 00 00 00 fa fa
0x0c067fffd5d0: 00 00 00 00 fa fa 00 00 00 00 fa fa fd fd fd fd
0x0c067fffd5e0: fa fa 00 00 00 fa fa fa 00 00 00 00 fa fa 00 00
=>0x0c067fffd5f0: 00[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c067fffd600: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c067fffd610: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c067fffd620: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c067fffd630: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c067fffd640: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==719525==ABORTING
input.rb: [BUG] ASAN error
ruby 3.5.0dev (2025-06-11T18:07:43Z master 970813d982) +PRISM [x86_64-linux]
-- Control frame information -----------------------------------------------
c:0001 p:0000 s:0003 E:000720 DUMMY [FINISH]
-- Threading information ---------------------------------------------------
Total ractor count: 1
Ruby thread count for this ractor: 1
-- C level backtrace information -------------------------------------------
/lib/x86_64-linux-gnu/libasan.so.5(__interceptor_backtrace+0x40) [0x7f69bf386d40] ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4022
/home/program/build/ruby(rb_print_backtrace+0x11) [0x559137fceda9] ../vm_dump.c:843
/home/program/build/ruby(rb_vm_bugreport) ../vm_dump.c:1175
/home/program/build/ruby(rb_bug_without_die_internal+0xc3) [0x559137efa4b6] ../error.c:1097
/home/program/build/ruby(rb_bug_without_die) ../error.c:1106
/lib/x86_64-linux-gnu/libasan.so.5(0x7f69bf44fe58) [0x7f69bf44fe58]
/lib/x86_64-linux-gnu/libasan.so.5(0x7f69bf43152c) [0x7f69bf43152c]
/lib/x86_64-linux-gnu/libasan.so.5(0x7f69bf430fa3) [0x7f69bf430fa3]
/lib/x86_64-linux-gnu/libasan.so.5(0x7f69bf43238e) [0x7f69bf43238e]
/home/program/build/ruby(pm_parse_errors_format_sort+0x12) [0x559137d4f16a] ../prism_compile.c:10620
/home/program/build/ruby(pm_parse_errors_format) ../prism_compile.c:10687
/home/program/build/ruby(pm_parse_process_error+0x84) [0x559137e08754] ../prism_compile.c:10999
/home/program/build/ruby(pm_parse_process) ../prism_compile.c:11105
/home/program/build/ruby(rbimpl_intern_const+0x0) [0x559137e7811e] ../prism_compile.c:11391
/home/program/build/ruby(pm_parse_file) ../prism_compile.c:11396
/home/program/build/ruby(prism_script+0xa4) [0x559137960744] ../ruby.c:2236
/home/program/build/ruby(process_options) ../ruby.c:2563
/home/program/build/ruby(ruby_process_options+0x3f0) [0x559137962290] ../ruby.c:3199
/home/program/build/ruby(ruby_options+0x2a7) [0x5591376a2407] ../eval.c:117
/home/program/build/ruby(rb_main+0x19) [0x5591376937ff] ../main.c:42
/home/program/build/ruby(main) ../main.c:62
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7f69beed2083]
/home/program/build/ruby(_start) [0x559137694dce]
-- Other runtime information -----------------------------------------------
* Loaded script: input.rb
* Loaded features:
0 enumerator.so
1 thread.rb
2 fiber.so
3 rational.so
4 complex.so
5 ruby2_keywords.rb
6 set.rb
```
### Environment
Ruby version: ruby 3.5.0dev (2025-06-11 commit 970813d982) +PRISM
Platform: x86_64-linux
Built from source
Parser backend: Prism (default)
--
https://bugs.ruby-lang.org/
2
1
[ruby-core:122632] [Ruby Bug#21462] [ruby-head] bundler crashes because default gems having bloated spec.files containing files from other gems
by ntkme (Natsuki Natsume) 01 Jul '25
by ntkme (Natsuki Natsume) 01 Jul '25
01 Jul '25
Issue #21462 has been reported by ntkme (Natsuki Natsume).
----------------------------------------
Bug #21462: [ruby-head] bundler crashes because default gems having bloated spec.files containing files from other gems
https://bugs.ruby-lang.org/issues/21462
* Author: ntkme (Natsuki Natsume)
* Status: Open
* ruby -v: ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin24]
* Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
This is causing ruby-dev-builder to fail in the past few days.
E.g. https://github.com/ruby/ruby-dev-builder/actions/runs/15981482361/job/45076…
Minimum reproduction:
```
# Gemfile
source 'https://rubygems.org'
gem 'json', '2.2.0'
```
```
bundle
bundle exec bundle --version
```
Error message:
```
/opt/homebrew/Cellar/ruby/HEAD-99360e5/lib/ruby/3.5.0+2/bundler/runtime.rb:317:in 'Bundler::Runtime#check_for_activated_spec!': You have already activated json 2.12.2, but your Gemfile requires json 2.2.0. Since json is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports json as a default gem. (Gem::LoadError)
```
After manual inspection, I found that the default gem spec of json is broken, that it includes tons of files from other gems.
```
$ grep -a 's.files =' /opt/homebrew/Cellar/ruby/HEAD-99360e5/lib/ruby/gems/3.5.0+2/specifications/default/json-2.12.2.gemspec
s.files = ["BSDL".freeze, "CHANGES.md".freeze, "COPYING".freeze, "LEGAL".freeze, "README.md".freeze, "ext/json/extconf.h".freeze, "ext/json/extconf.rb".freeze, "ext/json/fbuffer/fbuffer.h".freeze, "ext/json/generator/extconf.h".freeze, "ext/json/generator/extconf.rb".freeze, "ext/json/generator/generator.c".freeze, "ext/json/lib/json.rb".freeze, "ext/json/lib/json/add/bigdecimal.rb".freeze, "ext/json/lib/json/add/complex.rb".freeze, "ext/json/lib/json/add/core.rb".freeze, "ext/json/lib/json/add/date.rb".freeze, "ext/json/lib/json/add/date_time.rb".freeze, "ext/json/lib/json/add/exception.rb".freeze, "ext/json/lib/json/add/ostruct.rb".freeze, "ext/json/lib/json/add/range.rb".freeze, "ext/json/lib/json/add/rational.rb".freeze, "ext/json/lib/json/add/regexp.rb".freeze, "ext/json/lib/json/add/set.rb".freeze, "ext/json/lib/json/add/struct.rb".freeze, "ext/json/lib/json/add/symbol.rb".freeze, "ext/json/lib/json/add/time.rb".freeze, "ext/json/lib/json/common.rb".freeze, "ext/json/lib/json/ext.rb".freeze, "ext/json/lib/json/ext/generator/state.rb".freeze, "ext/json/lib/json/generic_object.rb".freeze, "ext/json/lib/json/version.rb".freeze, "ext/json/parser/extconf.h".freeze, "ext/json/parser/extconf.rb".freeze, "ext/json/parser/parser.c".freeze, "ext/json/simd/conf.rb".freeze, "ext/json/simd/simd.h".freeze, "ext/json/vendor/fpconv.c".freeze, "ext/json/vendor/jeaiii-ltoa.h".freeze, "json.gemspec".freeze, "lib/English.rb".freeze, "lib/bundled_gems.rb".freeze, "lib/bundler.rb".freeze, "lib/bundler/build_metadata.rb".freeze, "lib/bundler/capistrano.rb".freeze, "lib/bundler/checksum.rb".freeze, "lib/bundler/ci_detector.rb".freeze, "lib/bundler/cli.rb".freeze, "lib/bundler/cli/add.rb".freeze, "lib/bundler/cli/binstubs.rb".freeze, "lib/bundler/cli/cache.rb".freeze, "lib/bundler/cli/check.rb".freeze, "lib/bundler/cli/clean.rb".freeze, "lib/bundler/cli/common.rb".freeze, "lib/bundler/cli/config.rb".freeze, "lib/bundler/cli/console.rb".freeze, "lib/bundler/cli/doctor.rb".freeze, "lib/bundler/cli/doctor/diagnose.rb".freeze, "lib/bundler/cli/doctor/ssl.rb".freeze, "lib/bundler/cli/exec.rb".freeze, "lib/bundler/cli/fund.rb".freeze, "lib/bundler/cli/gem.rb".freeze, "lib/bundler/cli/info.rb".freeze, "lib/bundler/cli/init.rb".freeze, "lib/bundler/cli/inject.rb".freeze, "lib/bundler/cli/install.rb".freeze, "lib/bundler/cli/issue.rb".freeze, "lib/bundler/cli/list.rb".freeze, "lib/bundler/cli/lock.rb".freeze, "lib/bundler/cli/open.rb".freeze, "lib/bundler/cli/outdated.rb".freeze, "lib/bundler/cli/platform.rb".freeze, "lib/bundler/cli/plugin.rb".freeze, "lib/bundler/cli/pristine.rb".freeze, "lib/bundler/cli/remove.rb".freeze, "lib/bundler/cli/show.rb".freeze, "lib/bundler/cli/update.rb".freeze, "lib/bundler/cli/viz.rb".freeze, "lib/bundler/compact_index_client.rb".freeze, "lib/bundler/compact_index_client/cache.rb".freeze, "lib/bundler/compact_index_client/cache_file.rb".freeze, "lib/bundler/compact_index_client/parser.rb".freeze, "lib/bundler/compact_index_client/updater.rb".freeze, "lib/bundler/constants.rb".freeze, "lib/bundler/current_ruby.rb".freeze, "lib/bundler/definition.rb".freeze, "lib/bundler/dependency.rb".freeze, "lib/bundler/deployment.rb".freeze, "lib/bundler/deprecate.rb".freeze, "lib/bundler/digest.rb".freeze, "lib/bundler/dsl.rb".freeze, "lib/bundler/endpoint_specification.rb".freeze, "lib/bundler/env.rb".freeze, "lib/bundler/environment_preserver.rb".freeze, "lib/bundler/errors.rb".freeze, "lib/bundler/feature_flag.rb".freeze, "lib/bundler/fetcher.rb".freeze, "lib/bundler/fetcher/base.rb".freeze, "lib/bundler/fetcher/compact_index.rb".freeze, "lib/bundler/fetcher/dependency.rb".freeze, "lib/bundler/fetcher/downloader.rb".freeze, "lib/bundler/fetcher/gem_remote_fetcher.rb".freeze, "lib/bundler/fetcher/index.rb".freeze, "lib/bundler/force_platform.rb".freeze, "lib/bundler/friendly_errors.rb".freeze, "lib/bundler/gem_helper.rb".freeze, "lib/bundler/gem_tasks.rb".freeze, "lib/bundler/gem_version_promoter.rb".freeze, "lib/bundler/graph.rb".freeze, "lib/bundler/index.rb".freeze, "lib/bundler/injector.rb".freeze, "lib/bundler/inline.rb".freeze, "lib/bundler/installer.rb".freeze, "lib/bundler/installer/gem_installer.rb".freeze, "lib/bundler/installer/parallel_installer.rb".freeze, "lib/bundler/installer/standalone.rb".freeze, "lib/bundler/lazy_specification.rb".freeze, "lib/bundler/lockfile_generator.rb".freeze, "lib/bundler/lockfile_parser.rb".freeze, "lib/bundler/match_metadata.rb".freeze, "lib/bundler/match_platform.rb".freeze, "lib/bundler/match_remote_metadata.rb".freeze, "lib/bundler/materialization.rb".freeze, "lib/bundler/mirror.rb".freeze, "lib/bundler/plugin.rb".freeze, "lib/bundler/plugin/api.rb".freeze, "lib/bundler/plugin/api/source.rb".freeze, "lib/bundler/plugin/dsl.rb".freeze, "lib/bundler/plugin/events.rb".freeze, "lib/bundler/plugin/index.rb".freeze, "lib/bundler/plugin/installer.rb".freeze, "lib/bundler/plugin/installer/git.rb".freeze, "lib/bundler/plugin/installer/path.rb".freeze, "lib/bundler/plugin/installer/rubygems.rb".freeze, "lib/bundler/plugin/source_list.rb".freeze, "lib/bundler/process_lock.rb".freeze, "lib/bundler/remote_specification.rb".freeze, "lib/bundler/resolver.rb".freeze, "lib/bundler/resolver/base.rb".freeze, "lib/bundler/resolver/candidate.rb".freeze, "lib/bundler/resolver/incompatibility.rb".freeze, "lib/bundler/resolver/package.rb".freeze, "lib/bundler/resolver/root.rb".freeze, "lib/bundler/resolver/spec_group.rb".freeze, "lib/bundler/resolver/strategy.rb".freeze, "lib/bundler/retry.rb".freeze, "lib/bundler/ruby_dsl.rb".freeze, "lib/bundler/ruby_version.rb".freeze, "lib/bundler/rubygems_ext.rb".freeze, "lib/bundler/rubygems_gem_installer.rb".freeze, "lib/bundler/rubygems_integration.rb".freeze, "lib/bundler/runtime.rb".freeze, "lib/bundler/safe_marshal.rb".freeze, "lib/bundler/self_manager.rb".freeze, "lib/bundler/settings.rb".freeze, "lib/bundler/settings/validator.rb".freeze, "lib/bundler/setup.rb".freeze, "lib/bundler/shared_helpers.rb".freeze, "lib/bundler/similarity_detector.rb".freeze, "lib/bundler/source.rb".freeze, "lib/bundler/source/gemspec.rb".freeze, "lib/bundler/source/git.rb".freeze, "lib/bundler/source/git/git_proxy.rb".freeze, "lib/bundler/source/metadata.rb".freeze, "lib/bundler/source/path.rb".freeze, "lib/bundler/source/path/installer.rb".freeze, "lib/bundler/source/rubygems.rb".freeze, "lib/bundler/source/rubygems/remote.rb".freeze, "lib/bundler/source/rubygems_aggregate.rb".freeze, "lib/bundler/source_list.rb".freeze, "lib/bundler/source_map.rb".freeze, "lib/bundler/spec_set.rb".freeze, "lib/bundler/stub_specification.rb".freeze, "lib/bundler/ui.rb".freeze, "lib/bundler/ui/rg_proxy.rb".freeze, "lib/bundler/ui/shell.rb".freeze, "lib/bundler/ui/silent.rb".freeze, "lib/bundler/uri_credentials_filter.rb".freeze, "lib/bundler/uri_normalizer.rb".freeze, "lib/bundler/vendor/connection_pool/lib/connection_pool.rb".freeze, "lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb".freeze, "lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb".freeze, "lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb".freeze, "lib/bundler/vendor/fileutils/lib/fileutils.rb".freeze, "lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb".freeze, "lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb".freeze, "lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb".freeze, "lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/strategy.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb".freeze, "lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb".freeze, "lib/bundler/vendor/securerandom/lib/securerandom.rb".freeze, "lib/bundler/vendor/thor/lib/thor.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions/create_file.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions/create_link.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions/directory.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb".freeze, "lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb".freeze, "lib/bundler/vendor/thor/lib/thor/base.rb".freeze, "lib/bundler/vendor/thor/lib/thor/command.rb".freeze, "lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb".freeze, "lib/bundler/vendor/thor/lib/thor/error.rb".freeze, "lib/bundler/vendor/thor/lib/thor/group.rb".freeze, "lib/bundler/vendor/thor/lib/thor/invocation.rb".freeze, "lib/bundler/vendor/thor/lib/thor/line_editor.rb".freeze, "lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb".freeze, "lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb".freeze, "lib/bundler/vendor/thor/lib/thor/nested_context.rb".freeze, "lib/bundler/vendor/thor/lib/thor/parser.rb".freeze, "lib/bundler/vendor/thor/lib/thor/parser/argument.rb".freeze, "lib/bundler/vendor/thor/lib/thor/parser/arguments.rb".freeze, "lib/bundler/vendor/thor/lib/thor/parser/option.rb".freeze, "lib/bundler/vendor/thor/lib/thor/parser/options.rb".freeze, "lib/bundler/vendor/thor/lib/thor/rake_compat.rb".freeze, "lib/bundler/vendor/thor/lib/thor/runner.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/basic.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/color.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/html.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/terminal.rb".freeze, "lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb".freeze, "lib/bundler/vendor/thor/lib/thor/util.rb".freeze, "lib/bundler/vendor/thor/lib/thor/version.rb".freeze, "lib/bundler/vendor/tsort/lib/tsort.rb".freeze, "lib/bundler/vendor/uri/lib/uri.rb".freeze, "lib/bundler/vendor/uri/lib/uri/common.rb".freeze, "lib/bundler/vendor/uri/lib/uri/file.rb".freeze, "lib/bundler/vendor/uri/lib/uri/ftp.rb".freeze, "lib/bundler/vendor/uri/lib/uri/generic.rb".freeze, "lib/bundler/vendor/uri/lib/uri/http.rb".freeze, "lib/bundler/vendor/uri/lib/uri/https.rb".freeze, "lib/bundler/vendor/uri/lib/uri/ldap.rb".freeze, "lib/bundler/vendor/uri/lib/uri/ldaps.rb".freeze, "lib/bundler/vendor/uri/lib/uri/mailto.rb".freeze, "lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb".freeze, "lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb".freeze, "lib/bundler/vendor/uri/lib/uri/version.rb".freeze, "lib/bundler/vendor/uri/lib/uri/ws.rb".freeze, "lib/bundler/vendor/uri/lib/uri/wss.rb".freeze, "lib/bundler/vendored_fileutils.rb".freeze, "lib/bundler/vendored_net_http.rb".freeze, "lib/bundler/vendored_persistent.rb".freeze, "lib/bundler/vendored_pub_grub.rb".freeze, "lib/bundler/vendored_securerandom.rb".freeze, "lib/bundler/vendored_thor.rb".freeze, "lib/bundler/vendored_timeout.rb".freeze, "lib/bundler/vendored_tsort.rb".freeze, "lib/bundler/vendored_uri.rb".freeze, "lib/bundler/version.rb".freeze, "lib/bundler/vlad.rb".freeze, "lib/bundler/worker.rb".freeze, "lib/bundler/yaml_serializer.rb".freeze, "lib/cgi.rb".freeze, "lib/cgi/escape.rb".freeze, "lib/cgi/util.rb".freeze, "lib/delegate.rb".freeze, "lib/did_you_mean.rb".freeze, "lib/did_you_mean/core_ext/name_error.rb".freeze, "lib/did_you_mean/experimental.rb".freeze, "lib/did_you_mean/formatter.rb".freeze, "lib/did_you_mean/formatters/plain_formatter.rb".freeze, "lib/did_you_mean/formatters/verbose_formatter.rb".freeze, "lib/did_you_mean/jaro_winkler.rb".freeze, "lib/did_you_mean/levenshtein.rb".freeze, "lib/did_you_mean/spell_checker.rb".freeze, "lib/did_you_mean/spell_checkers/key_error_checker.rb".freeze, "lib/did_you_mean/spell_checkers/method_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/name_error_checkers.rb".freeze, "lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/null_checker.rb".freeze, "lib/did_you_mean/spell_checkers/pattern_key_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/require_path_checker.rb".freeze, "lib/did_you_mean/tree_spell_checker.rb".freeze, "lib/did_you_mean/verbose.rb".freeze, "lib/did_you_mean/version.rb".freeze, "lib/erb.rb".freeze, "lib/erb/compiler.rb".freeze, "lib/erb/def_method.rb".freeze, "lib/erb/util.rb".freeze, "lib/erb/version.rb".freeze, "lib/error_highlight.rb".freeze, "lib/error_highlight/base.rb".freeze, "lib/error_highlight/core_ext.rb".freeze, "lib/error_highlight/formatter.rb".freeze, "lib/error_highlight/version.rb".freeze, "lib/fileutils.rb".freeze, "lib/find.rb".freeze, "lib/forwardable.rb".freeze, "lib/forwardable/impl.rb".freeze, "lib/ipaddr.rb".freeze, "lib/mkmf.rb".freeze, "lib/net/http.rb".freeze, "lib/net/http/exceptions.rb".freeze, "lib/net/http/generic_request.rb".freeze, "lib/net/http/header.rb".freeze, "lib/net/http/proxy_delta.rb".freeze, "lib/net/http/request.rb".freeze, "lib/net/http/requests.rb".freeze, "lib/net/http/response.rb".freeze, "lib/net/http/responses.rb".freeze, "lib/net/http/status.rb".freeze, "lib/net/https.rb".freeze, "lib/net/protocol.rb".freeze, "lib/open-uri.rb".freeze, "lib/open3.rb".freeze, "lib/open3/version.rb".freeze, "lib/optionparser.rb".freeze, "lib/optparse.rb".freeze, "lib/optparse/ac.rb".freeze, "lib/optparse/date.rb".freeze, "lib/optparse/kwargs.rb".freeze, "lib/optparse/shellwords.rb".freeze, "lib/optparse/time.rb".freeze, "lib/optparse/uri.rb".freeze, "lib/optparse/version.rb".freeze, "lib/pp.rb".freeze, "lib/prettyprint.rb".freeze, "lib/prism.rb".freeze, "lib/prism/compiler.rb".freeze, "lib/prism/desugar_compiler.rb".freeze, "lib/prism/dispatcher.rb".freeze, "lib/prism/dsl.rb".freeze, "lib/prism/ffi.rb".freeze, "lib/prism/inspect_visitor.rb".freeze, "lib/prism/lex_compat.rb".freeze, "lib/prism/mutation_compiler.rb".freeze, "lib/prism/node.rb".freeze, "lib/prism/node_ext.rb".freeze, "lib/prism/pack.rb".freeze, "lib/prism/parse_result.rb".freeze, "lib/prism/parse_result/comments.rb".freeze, "lib/prism/parse_result/errors.rb".freeze, "lib/prism/parse_result/newlines.rb".freeze, "lib/prism/pattern.rb".freeze, "lib/prism/polyfill/append_as_bytes.rb".freeze, "lib/prism/polyfill/byteindex.rb".freeze, "lib/prism/polyfill/scan_byte.rb".freeze, "lib/prism/polyfill/unpack1.rb".freeze, "lib/prism/polyfill/warn.rb".freeze, "lib/prism/reflection.rb".freeze, "lib/prism/relocation.rb".freeze, "lib/prism/serialize.rb".freeze, "lib/prism/string_query.rb".freeze, "lib/prism/translation.rb".freeze, "lib/prism/translation/parser.rb".freeze, "lib/prism/translation/parser/builder.rb".freeze, "lib/prism/translation/parser/compiler.rb".freeze, "lib/prism/translation/parser/lexer.rb".freeze, "lib/prism/translation/parser33.rb".freeze, "lib/prism/translation/parser34.rb".freeze, "lib/prism/translation/parser35.rb".freeze, "lib/prism/translation/parser_current.rb".freeze, "lib/prism/translation/ripper.rb".freeze, "lib/prism/translation/ripper/sexp.rb".freeze, "lib/prism/translation/ripper/shim.rb".freeze, "lib/prism/translation/ruby_parser.rb".freeze, "lib/prism/visitor.rb".freeze, "lib/random/formatter.rb".freeze, "lib/resolv.rb".freeze, "lib/rubygems.rb".freeze, "lib/rubygems/available_set.rb".freeze, "lib/rubygems/basic_specification.rb".freeze, "lib/rubygems/bundler_integration.rb".freeze, "lib/rubygems/bundler_version_finder.rb".freeze, "lib/rubygems/ci_detector.rb".freeze, "lib/rubygems/command.rb".freeze, "lib/rubygems/command_manager.rb".freeze, "lib/rubygems/commands/build_command.rb".freeze, "lib/rubygems/commands/cert_command.rb".freeze, "lib/rubygems/commands/check_command.rb".freeze, "lib/rubygems/commands/cleanup_command.rb".freeze, "lib/rubygems/commands/contents_command.rb".freeze, "lib/rubygems/commands/dependency_command.rb".freeze, "lib/rubygems/commands/environment_command.rb".freeze, "lib/rubygems/commands/exec_command.rb".freeze, "lib/rubygems/commands/fetch_command.rb".freeze, "lib/rubygems/commands/generate_index_command.rb".freeze, "lib/rubygems/commands/help_command.rb".freeze, "lib/rubygems/commands/info_command.rb".freeze, "lib/rubygems/commands/install_command.rb".freeze, "lib/rubygems/commands/list_command.rb".freeze, "lib/rubygems/commands/lock_command.rb".freeze, "lib/rubygems/commands/mirror_command.rb".freeze, "lib/rubygems/commands/open_command.rb".freeze, "lib/rubygems/commands/outdated_command.rb".freeze, "lib/rubygems/commands/owner_command.rb".freeze, "lib/rubygems/commands/pristine_command.rb".freeze, "lib/rubygems/commands/push_command.rb".freeze, "lib/rubygems/commands/query_command.rb".freeze, "lib/rubygems/commands/rdoc_command.rb".freeze, "lib/rubygems/commands/rebuild_command.rb".freeze, "lib/rubygems/commands/search_command.rb".freeze, "lib/rubygems/commands/server_command.rb".freeze, "lib/rubygems/commands/setup_command.rb".freeze, "lib/rubygems/commands/signin_command.rb".freeze, "lib/rubygems/commands/signout_command.rb".freeze, "lib/rubygems/commands/sources_command.rb".freeze, "lib/rubygems/commands/specification_command.rb".freeze, "lib/rubygems/commands/stale_command.rb".freeze, "lib/rubygems/commands/uninstall_command.rb".freeze, "lib/rubygems/commands/unpack_command.rb".freeze, "lib/rubygems/commands/update_command.rb".freeze, "lib/rubygems/commands/which_command.rb".freeze, "lib/rubygems/commands/yank_command.rb".freeze, "lib/rubygems/compatibility.rb".freeze, "lib/rubygems/config_file.rb".freeze, "lib/rubygems/core_ext/kernel_gem.rb".freeze, "lib/rubygems/core_ext/kernel_require.rb".freeze, "lib/rubygems/core_ext/kernel_warn.rb".freeze, "lib/rubygems/core_ext/tcpsocket_init.rb".freeze, "lib/rubygems/defaults.rb".freeze, "lib/rubygems/dependency.rb".freeze, "lib/rubygems/dependency_installer.rb".freeze, "lib/rubygems/dependency_list.rb".freeze, "lib/rubygems/deprecate.rb".freeze, "lib/rubygems/doctor.rb".freeze, "lib/rubygems/errors.rb".freeze, "lib/rubygems/exceptions.rb".freeze, "lib/rubygems/ext.rb".freeze, "lib/rubygems/ext/build_error.rb".freeze, "lib/rubygems/ext/builder.rb".freeze, "lib/rubygems/ext/cargo_builder.rb".freeze, "lib/rubygems/ext/cargo_builder/link_flag_converter.rb".freeze, "lib/rubygems/ext/cmake_builder.rb".freeze, "lib/rubygems/ext/configure_builder.rb".freeze, "lib/rubygems/ext/ext_conf_builder.rb".freeze, "lib/rubygems/ext/rake_builder.rb".freeze, "lib/rubygems/gem_runner.rb".freeze, "lib/rubygems/gemcutter_utilities.rb".freeze, "lib/rubygems/gemcutter_utilities/webauthn_listener.rb".freeze, "lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb".freeze, "lib/rubygems/gemcutter_utilities/webauthn_poller.rb".freeze, "lib/rubygems/gemspec_helpers.rb".freeze, "lib/rubygems/install_default_message.rb".freeze, "lib/rubygems/install_message.rb".freeze, "lib/rubygems/install_update_options.rb".freeze, "lib/rubygems/installer.rb".freeze, "lib/rubygems/installer_uninstaller_utils.rb".freeze, "lib/rubygems/local_remote_options.rb".freeze, "lib/rubygems/name_tuple.rb".freeze, "lib/rubygems/openssl.rb".freeze, "lib/rubygems/package.rb".freeze, "lib/rubygems/package/digest_io.rb".freeze, "lib/rubygems/package/file_source.rb".freeze, "lib/rubygems/package/io_source.rb".freeze, "lib/rubygems/package/old.rb".freeze, "lib/rubygems/package/source.rb".freeze, "lib/rubygems/package/tar_header.rb".freeze, "lib/rubygems/package/tar_reader.rb".freeze, "lib/rubygems/package/tar_reader/entry.rb".freeze, "lib/rubygems/package/tar_writer.rb".freeze, "lib/rubygems/package_task.rb".freeze, "lib/rubygems/path_support.rb".freeze, "lib/rubygems/platform.rb".freeze, "lib/rubygems/psych_tree.rb".freeze, "lib/rubygems/query_utils.rb".freeze, "lib/rubygems/rdoc.rb".freeze, "lib/rubygems/remote_fetcher.rb".freeze, "lib/rubygems/request.rb".freeze, "lib/rubygems/request/connection_pools.rb".freeze, "lib/rubygems/request/http_pool.rb".freeze, "lib/rubygems/request/https_pool.rb".freeze, "lib/rubygems/request_set.rb".freeze, "lib/rubygems/request_set/gem_dependency_api.rb".freeze, "lib/rubygems/request_set/lockfile.rb".freeze, "lib/rubygems/request_set/lockfile/parser.rb".freeze, "lib/rubygems/request_set/lockfile/tokenizer.rb".freeze, "lib/rubygems/requirement.rb".freeze, "lib/rubygems/resolver.rb".freeze, "lib/rubygems/resolver/activation_request.rb".freeze, "lib/rubygems/resolver/api_set.rb".freeze, "lib/rubygems/resolver/api_set/gem_parser.rb".freeze, "lib/rubygems/resolver/api_specification.rb".freeze, "lib/rubygems/resolver/best_set.rb".freeze, "lib/rubygems/resolver/composed_set.rb".freeze, "lib/rubygems/resolver/conflict.rb".freeze, "lib/rubygems/resolver/current_set.rb".freeze, "lib/rubygems/resolver/dependency_request.rb".freeze, "lib/rubygems/resolver/git_set.rb".freeze, "lib/rubygems/resolver/git_specification.rb".freeze, "lib/rubygems/resolver/index_set.rb".freeze, "lib/rubygems/resolver/index_specification.rb".freeze, "lib/rubygems/resolver/installed_specification.rb".freeze, "lib/rubygems/resolver/installer_set.rb".freeze, "lib/rubygems/resolver/local_specification.rb".freeze, "lib/rubygems/resolver/lock_set.rb".freeze, "lib/rubygems/resolver/lock_specification.rb".freeze, "lib/rubygems/resolver/requirement_list.rb".freeze, "lib/rubygems/resolver/set.rb".freeze, "lib/rubygems/resolver/source_set.rb".freeze, "lib/rubygems/resolver/spec_specification.rb".freeze, "lib/rubygems/resolver/specification.rb".freeze, "lib/rubygems/resolver/stats.rb".freeze, "lib/rubygems/resolver/vendor_set.rb".freeze, "lib/rubygems/resolver/vendor_specification.rb".freeze, "lib/rubygems/s3_uri_signer.rb".freeze, "lib/rubygems/safe_marshal.rb".freeze, "lib/rubygems/safe_marshal/elements.rb".freeze, "lib/rubygems/safe_marshal/reader.rb".freeze, "lib/rubygems/safe_marshal/visitors/stream_printer.rb".freeze, "lib/rubygems/safe_marshal/visitors/to_ruby.rb".freeze, "lib/rubygems/safe_marshal/visitors/visitor.rb".freeze, "lib/rubygems/safe_yaml.rb".freeze, "lib/rubygems/security.rb".freeze, "lib/rubygems/security/policies.rb".freeze, "lib/rubygems/security/policy.rb".freeze, "lib/rubygems/security/signer.rb".freeze, "lib/rubygems/security/trust_dir.rb".freeze, "lib/rubygems/security_option.rb".freeze, "lib/rubygems/source.rb".freeze, "lib/rubygems/source/git.rb".freeze, "lib/rubygems/source/installed.rb".freeze, "lib/rubygems/source/local.rb".freeze, "lib/rubygems/source/lock.rb".freeze, "lib/rubygems/source/specific_file.rb".freeze, "lib/rubygems/source/vendor.rb".freeze, "lib/rubygems/source_list.rb".freeze, "lib/rubygems/spec_fetcher.rb".freeze, "lib/rubygems/specification.rb".freeze, "lib/rubygems/specification_policy.rb".freeze, "lib/rubygems/specification_record.rb".freeze, "lib/rubygems/stub_specification.rb".freeze, "lib/rubygems/target_rbconfig.rb".freeze, "lib/rubygems/text.rb".freeze, "lib/rubygems/uninstaller.rb".freeze, "lib/rubygems/unknown_command_spell_checker.rb".freeze, "lib/rubygems/update_suggestion.rb".freeze, "lib/rubygems/uri.rb".freeze, "lib/rubygems/uri_formatter.rb".freeze, "lib/rubygems/user_interaction.rb".freeze, "lib/rubygems/util.rb".freeze, "lib/rubygems/util/licenses.rb".freeze, "lib/rubygems/util/list.rb".freeze, "lib/rubygems/validator.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/action.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/log.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/errors.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/gem_metadata.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/modules/specification_provider.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/modules/ui.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/resolution.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/resolver.rb".freeze, "lib/rubygems/vendor/molinillo/lib/molinillo/state.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/exceptions.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/generic_request.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/header.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/proxy_delta.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/request.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/requests.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/response.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/responses.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/http/status.rb".freeze, "lib/rubygems/vendor/net-http/lib/net/https.rb".freeze, "lib/rubygems/vendor/net-protocol/lib/net/protocol.rb".freeze, "lib/rubygems/vendor/optparse/lib/optionparser.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/ac.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/date.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/kwargs.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/shellwords.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/time.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/uri.rb".freeze, "lib/rubygems/vendor/optparse/lib/optparse/version.rb".freeze, "lib/rubygems/vendor/resolv/lib/resolv.rb".freeze, "lib/rubygems/vendor/securerandom/lib/securerandom.rb".freeze, "lib/rubygems/vendor/timeout/lib/timeout.rb".freeze, "lib/rubygems/vendor/tsort/lib/tsort.rb".freeze, "lib/rubygems/vendor/uri/lib/uri.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/common.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/file.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/ftp.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/generic.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/http.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/https.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/ldap.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/ldaps.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/mailto.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/rfc2396_parser.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/rfc3986_parser.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/version.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/ws.rb".freeze, "lib/rubygems/vendor/uri/lib/uri/wss.rb".freeze, "lib/rubygems/vendored_molinillo.rb".freeze, "lib/rubygems/vendored_net_http.rb".freeze, "lib/rubygems/vendored_optparse.rb".freeze, "lib/rubygems/vendored_securerandom.rb".freeze, "lib/rubygems/vendored_timeout.rb".freeze, "lib/rubygems/vendored_tsort.rb".freeze, "lib/rubygems/version.rb".freeze, "lib/rubygems/version_option.rb".freeze, "lib/rubygems/yaml_serializer.rb".freeze, "lib/securerandom.rb".freeze, "lib/shellwords.rb".freeze, "lib/singleton.rb".freeze, "lib/syntax_suggest.rb".freeze, "lib/syntax_suggest/api.rb".freeze, "lib/syntax_suggest/around_block_scan.rb".freeze, "lib/syntax_suggest/block_expand.rb".freeze, "lib/syntax_suggest/capture/before_after_keyword_ends.rb".freeze, "lib/syntax_suggest/capture/falling_indent_lines.rb".freeze, "lib/syntax_suggest/capture_code_context.rb".freeze, "lib/syntax_suggest/clean_document.rb".freeze, "lib/syntax_suggest/cli.rb".freeze, "lib/syntax_suggest/code_block.rb".freeze, "lib/syntax_suggest/code_frontier.rb".freeze, "lib/syntax_suggest/code_line.rb".freeze, "lib/syntax_suggest/code_search.rb".freeze, "lib/syntax_suggest/core_ext.rb".freeze, "lib/syntax_suggest/display_code_with_line_numbers.rb".freeze, "lib/syntax_suggest/display_invalid_blocks.rb".freeze, "lib/syntax_suggest/explain_syntax.rb".freeze, "lib/syntax_suggest/left_right_lex_count.rb".freeze, "lib/syntax_suggest/lex_all.rb".freeze, "lib/syntax_suggest/lex_value.rb".freeze, "lib/syntax_suggest/mini_stringio.rb".freeze, "lib/syntax_suggest/parse_blocks_from_indent_line.rb".freeze, "lib/syntax_suggest/pathname_from_message.rb".freeze, "lib/syntax_suggest/priority_engulf_queue.rb".freeze, "lib/syntax_suggest/priority_queue.rb".freeze, "lib/syntax_suggest/ripper_errors.rb".freeze, "lib/syntax_suggest/scan_history.rb".freeze, "lib/syntax_suggest/unvisited_lines.rb".freeze, "lib/syntax_suggest/version.rb".freeze, "lib/tempfile.rb".freeze, "lib/time.rb".freeze, "lib/timeout.rb".freeze, "lib/tmpdir.rb".freeze, "lib/tsort.rb".freeze, "lib/un.rb".freeze, "lib/unicode_normalize/normalize.rb".freeze, "lib/unicode_normalize/tables.rb".freeze, "lib/uri.rb".freeze, "lib/uri/common.rb".freeze, "lib/uri/file.rb".freeze, "lib/uri/ftp.rb".freeze, "lib/uri/generic.rb".freeze, "lib/uri/http.rb".freeze, "lib/uri/https.rb".freeze, "lib/uri/ldap.rb".freeze, "lib/uri/ldaps.rb".freeze, "lib/uri/mailto.rb".freeze, "lib/uri/rfc2396_parser.rb".freeze, "lib/uri/rfc3986_parser.rb".freeze, "lib/uri/version.rb".freeze, "lib/uri/ws.rb".freeze, "lib/uri/wss.rb".freeze, "lib/weakref.rb".freeze, "lib/yaml.rb".freeze, "lib/yaml/dbm.rb".freeze, "lib/yaml/store.rb".freeze]
```
In addition, "json" is not the only gemspec that's broken. In total I found 3 of them to be broken:
- json-2.12.2.gemspec
- openssl-3.3.0.gemspec
- optparse-0.7.0.dev.2.gemspec
The commonality among these gemspec is that they all have `Dir["lib/**/*"]` or some similar patterns, and due to the all default gems are installed in a single shared directory, the glob pattern is including files from other gems.
--
https://bugs.ruby-lang.org/
2
2