Ruby Issue Tracking System: Issueshttps://bugs.ruby-lang.org/https://bugs.ruby-lang.org/favicon.ico?17113305112024-03-27T17:22:36ZRuby Issue Tracking System
Redmine Ruby master - Bug #20397 (Open): The nkf license in LEGAL file seems to be obsoletehttps://bugs.ruby-lang.org/issues/203972024-03-27T17:22:36Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>The LEGAL file seems to contain <a href="https://github.com/ruby/ruby/blob/a69f0047cb489c136001937442c1d2ffd8ea1dd7/LEGAL?plain=1#L730-L746" class="external">obsolete information</a> about nkf license.</p>
<p>It seems that nkf indeed use such license, but in upstream, it was first changed to <a href="https://github.com/nurse/nkf/commit/c12280757bfb275d6f9e6b0bf6293a28b060e77b" class="external">MIT</a> and then immediately to <a href="https://github.com/nurse/nkf/commit/2ed3e1c270f1deb9487f7bc7d7586030fe7dabc5" class="external">zlib</a> license.</p>
<p>Ruby has picked up that change with <a class="changeset" title="* ext/nkf/nkf-utf8/nkf.c: Update nkf to 2.0.9. revert -s meaning as Shift_JIS, etc. git-svn-id..." href="https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/13313688b243882aff7815598ddd9fcbae69bc17">git|13313688b243882aff7815598ddd9fcbae69bc17</a></p>
<p>Maybe <a class="user active user-mention" href="https://bugs.ruby-lang.org/users/5">@naruse (Yui NARUSE)</a> can comment about this.</p> Ruby master - Bug #20395 (Open): Invalid license note in vsnprintf.chttps://bugs.ruby-lang.org/issues/203952024-03-26T11:19:39Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>I am looking into Ruby licenses and I stumble upon vsnprintf.c, namely about these lines:</p>
<pre><code>/*
* IMPORTANT NOTE:
* --------------
* From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
* paragraph 3 above is now null and void.
*/
</code></pre>
<p>I doubt the note is valid since <a class="changeset" title="* missing/crypt.c: replaced with 4.4BSD version. * missing/erf.c: ditto. * missing/vsnprintf.c:..." href="https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/626f1ee196fe06514d66771ff0e3f82d7686af25">git|626f1ee196fe06514d66771ff0e3f82d7686af25</a>, which actually removes the 3rd clause, while the (broken) URL refers to "4bsd". Can somebody please review? The note from the URL can be likely viewed e.g. <a href="https://www.freebsd.org/copyright/license/" class="external">here</a></p> Ruby master - Bug #20203 (Open): `TestEnumerable` test failures with GCC 14https://bugs.ruby-lang.org/issues/202032024-01-22T17:10:42Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>There is ongoing mass rebuild in Fedora and that is first time GCC 14 is used and we observe test failures in <code>TestEnumerable</code>. Here are a few examples:</p>
<pre><code>[ 3000/26419] TestEnumerable#test_transient_heap_sort_bymalloc_consolidate(): unaligned fastbin chunk detected
</code></pre>
<pre><code>[ 2455/26535] TestEnumerable#test_transient_heap_sort_bycorrupted size vs. prev_size in fastbins
</code></pre>
<pre><code>[ 9716/26532] TestEnumerable#test_any_with_unused_blockdouble free or corruption (fasttop)
</code></pre>
<p>The full logs are accessible <a href="https://koji.fedoraproject.org/koji/taskinfo?taskID=112176941" class="external">here</a>. Please drill through <code>Descendants</code> and <code>build.log</code></p> Ruby master - Bug #20179 (Open): `--with-ruby-version` configure option is not correctly applied ...https://bugs.ruby-lang.org/issues/201792024-01-12T13:18:55Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>I am trying to configure ruby using <code>--with-ruby-version=ruby3.3</code>. Here is the configure output:</p>
<pre><code>$ /builddir/build/BUILD/ruby-3.3.0/configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --runstatedir=/run --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-compress-debug-sections=no --disable-rpath --enable-mkmf-verbose --enable-shared --with-ruby-version=ruby3.3 --enable-yjit
... snip ...
---
Configuration summary for ruby version 3.3.0
* Installation prefix: /usr
* exec prefix: /usr
* arch: x86_64-linux
* 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
* compiler: gcc
* with thread: pthread
* with coroutine: amd64
* enable shared libs: yes
* dynamic library ext: so
* CFLAGS: ${optflags} ${debugflags} ${warnflags}
* LDFLAGS: -L. -Wl,-z,relro -Wl,--as-needed \
-Wl,-z,pack-relative-relocs -Wl,-z,now \
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld \
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 \
-Wl,--build-id=sha1 -fstack-protector-strong \
-rdynamic -Wl,-export-dynamic -Wl,--no-as-needed
* DLDFLAGS: -Wl,-z,relro -Wl,--as-needed \
-Wl,-z,pack-relative-relocs -Wl,-z,now \
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld \
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 \
-Wl,--build-id=sha1
* 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: yes
* RJIT support: yes
* man page type: doc
---
</code></pre>
<p>However, the option is not applied consistently, especially the <code>rubyhdrdir</code> stands out:</p>
<pre><code>$ find . -name \*ruby3.3\*
./usr/lib64/ruby/ruby3.3
./usr/lib64/ruby/site_ruby/ruby3.3
./usr/lib64/ruby/vendor_ruby/ruby3.3
./usr/lib64/ruby/gems/ruby3.3
./usr/lib64/ruby/gems/ruby3.3/extensions/x86_64-linux/ruby3.3
./usr/include/ruby-ruby3.3
./usr/share/ri/ruby3.3
</code></pre>
<p>The correct path should be IMHO <code>./usr/include/ruby3.3</code>. I can likely workaround it by <code>--with-rubyhdrdir</code>, but I think this should behave consistently.</p> Ruby master - Bug #20045 (Assigned): `TestDir#test_home` fails on i686https://bugs.ruby-lang.org/issues/200452023-12-07T09:28:07Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>This is followup to <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: `TestFileExhaustive#test_expand_path_for_existent_username` and `TestDir#test_home` fails on i686 (Closed)" href="https://bugs.ruby-lang.org/issues/19147">#19147</a>. Testing on Fedora 38 and Fedora Rawhide, we are facing this test failure:</p>
<pre><code>$ tar xf build/SOURCES/ruby-3.2.2.tar.xz
$ cd ruby-3.2.2/
$ ./configure && make
... snip ...
---
Configuration summary for ruby version 3.2.2
* Installation prefix: /usr/local
* exec prefix: ${prefix}
* arch: i686-linux
* site arch: ${arch}
* RUBY_BASE_NAME: ruby
* ruby lib prefix: ${libdir}/${RUBY_BASE_NAME}
* site libraries path: ${rubylibprefix}/${sitearch}
* vendor path: ${rubylibprefix}/vendor_ruby
* target OS: linux
* compiler: gcc
* with thread: pthread
* with coroutine: x86
* enable shared libs: no
* dynamic library ext: so
* CFLAGS: ${optflags} ${debugflags} ${warnflags}
* LDFLAGS: -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic
* DLDFLAGS: -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 -Wmisleading-indentation -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 -Wundef
* strip command: strip -S -x
* install doc: rdoc
* MJIT support: yes
* YJIT support: no
* man page type: doc
---
... snip ...
$ LANG=C make test-all 'TESTS=-v -n /TestDir#test_home/'
config.status: creating ruby-runner.h
making mjit_build_dir.so
generating i686-linux-fake.rb
i686-linux-fake.rb updated
Run options:
--seed=10517
"--ruby=./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems"
--excludes-dir=./test/excludes
--name=!/memory_leak/
-v
-n
/TestDir#test_home/
# Running tests:
[1/0] TestDir#test_home = 0.00 s
1) Error:
TestDir#test_home:
RuntimeError: can't set length of shared string
/builddir/ruby-3.2.2/test/ruby/test_dir.rb:557:in `expand_path'
/builddir/ruby-3.2.2/test/ruby/test_dir.rb:557:in `block in test_home'
Finished tests in 4.164691s, 0.2401 tests/s, 1.6808 assertions/s.
1 tests, 7 assertions, 0 failures, 1 errors, 0 skips
ruby -v: ruby 3.2.2 (2023-03-30 revision e51014f9c0) [i686-linux]
make: *** [uncommon.mk:855: yes-test-all] Error 1
</code></pre>
<p>Please note that having the <code>C</code> locale is essential. The test passes just fine with e.g. <code>C.UTF-8</code> locale.</p>
<p>We were able to reduce the test case to the following:</p>
<pre><code>$ whoami
mockbuild
$ echo 'File.expand_path("~mockbuild")' > test.rb
$ LANG=C RUBYLIB=/builddir/ruby-3.2.2/.ext/i686-linux LD_LIBRARY_PATH=. ./ruby --disable-gems test.rb
test.rb:1:in `expand_path': can't set length of shared string (RuntimeError)
from test.rb:1:in `<main>'
</code></pre>
<p>As I said earlier, the <code>LANG=C</code> is essential as well as the <code>RUBYLIB=/builddir/ruby-3.2.2/.ext/i386-linux</code>. Adding the path to <code>RUBYLIB</code> enables Ruby to load the following libraries:</p>
<pre><code>/builddir/ruby-3.2.2/.ext/i686-linux/enc/encdb.so
/builddir/ruby-3.2.2/.ext/i686-linux/enc/trans/transdb.so
</code></pre>
<p>And that makes the difference. Also, the <code>File.expand_path("~mockbuild")</code> must be in some file, replacing this by <code>-e 'File.expand_path("~mockbuild")'</code> does not reproduce the issue.</p>
<p>We also believe that this was introduced by <a href="https://github.com/ruby/ruby/pull/6699" class="external">https://github.com/ruby/ruby/pull/6699</a>, specifically by <a class="changeset" title="Transition shape when object's capacity changes This commit adds a `capacity` field to shapes, a..." href="https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/5246f4027ec574e77809845e1b1f7822cc2a5cef">git|5246f4027ec574e77809845e1b1f7822cc2a5cef</a> and fixed in master by <a class="changeset" title="Enable 5 size pools on 32 bit systems This commit will allow 32 bit systems to take advantage of..." href="https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/b4571097df4a6bd848f1195026d82a92f3a7f9d8">git|b4571097df4a6bd848f1195026d82a92f3a7f9d8</a>.</p>
<p>Unfortunately, we were not able to discover what is the mechanism behind this, why this depends on locale, why the test must be in file, why the string is shared etc. But I hope we have provided enough details for someone else more knowledgeable.</p>
<p>Some background for this issue is also available here:</p>
<p><a href="https://src.fedoraproject.org/rpms/ruby/pull-request/164" class="external">https://src.fedoraproject.org/rpms/ruby/pull-request/164</a></p> Ruby master - Bug #19984 (Open): `make test-bundler-parallel` fails with ` --enable-shared`https://bugs.ruby-lang.org/issues/199842023-11-02T09:17:50Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<pre><code>+ ./configure --enable-shared
checking for ruby... false
... snip ...
config.status: creating Makefile
---
Configuration summary for ruby version 3.3.0
* Installation prefix: /usr/local
* exec prefix: ${prefix}
* arch: x86_64-linux
* 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
* compiler: gcc
* with thread: pthread
* with coroutine: amd64
* enable shared libs: yes
* dynamic library ext: so
* CFLAGS: ${optflags} ${debugflags} ${warnflags}
* LDFLAGS: -L. -Wl,-z,relro -Wl,--as-needed -Wl,-z,now \
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld \
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 \
-Wl,--build-id=sha1 -fstack-protector-strong \
-rdynamic -Wl,-export-dynamic -Wl,--no-as-needed
* DLDFLAGS: -Wl,-z,relro -Wl,--as-needed -Wl,-z,now \
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld \
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 \
-Wl,--build-id=sha1 \
-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: yes
* RJIT support: yes
* man page type: doc
---
$ make -O -j8 V=1 VERBOSE=1 'COPY=cp -p'
BASERUBY = echo executable host ruby is required. use --with-baseruby option.; false
CC = gcc
LD = ld
LDSHARED = gcc -shared
CFLAGS = -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC -m64
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/x86_64-linux -I./include -I. -I./prism -I./enc/unicode/15.0.0
CPPFLAGS =
DLDFLAGS = -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,--compress-debug-sections=zlib -Wl,-soname,libruby.so.3.3 -fstack-protector-strong -m64
SOLIBS = -lz -lrt -lrt -lgmp -ldl -lcrypt -lm -lpthread
LANG = C.UTF-8
LC_ALL =
LC_CTYPE =
MFLAGS = -j8 -Otarget --jobserver-auth=fifo:/tmp/GMfifo10180 --sync-mutex=fnm:/tmp/GmCLOiGB
RUSTC = rustc
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=/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/yjit/target/release/' ./yjit/src/lib.rs
gcc (GCC) 13.2.1 20231011 (Red Hat 13.2.1-4)
Copyright (C) 2023 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.
gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC -m64 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -I. -I.ext/include/x86_64-linux -I./include -I. -I./prism -I./enc/unicode/15.0.0 -o dmyext.o -c dmyext.c
... snip ...
$ make test-bundler-parallel
BASERUBY = echo executable host ruby is required. use --with-baseruby option.; false
CC = gcc
LD = ld
LDSHARED = gcc -shared
CFLAGS = -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC -m64
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/x86_64-linux -I./include -I. -I./prism -I./enc/unicode/15.0.0
CPPFLAGS =
DLDFLAGS = -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,--compress-debug-sections=zlib -Wl,-soname,libruby.so.3.3 -fstack-protector-strong -m64
SOLIBS = -lz -lrt -lrt -lgmp -ldl -lcrypt -lm -lpthread
LANG = C.UTF-8
LC_ALL =
LC_CTYPE =
MFLAGS =
RUSTC = rustc
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=/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/yjit/target/release/' ./yjit/src/lib.rs
gcc (GCC) 13.2.1 20231011 (Red Hat 13.2.1-4)
Copyright (C) 2023 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.
generating enc.mk
making srcs under enc
make[1]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
make[1]: Nothing to be done for 'srcs'.
make[1]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
generating transdb.h
transdb.h unchanged
generating makefiles ext/configure-ext.mk
ext/configure-ext.mk updated
make[1]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
make[1]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
generating makefile exts.mk
exts.mk unchanged
make[1]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/bigdecimal'
installing default bigdecimal libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/bigdecimal'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/coverage'
installing default coverage libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/coverage'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/date'
installing default date_core libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/date'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/digest'
installing digest libraries
installing default digest libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/digest'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/digest/sha2'
installing default sha2 libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/digest/sha2'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/fiddle'
installing default fiddle libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/fiddle'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/io/console'
installing default console libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/io/console'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/json'
installing default libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/json'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/monitor'
installing default monitor libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/monitor'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/nkf'
installing default nkf libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/nkf'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/objspace'
installing default objspace libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/objspace'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/openssl'
installing default openssl libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/openssl'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/pathname'
installing default pathname libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/pathname'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/psych'
installing default psych libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/psych'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/pty'
installing default pty libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/pty'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/ripper'
installing default ripper libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/ripper'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/rubyvm'
installing default libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/rubyvm'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/socket'
installing default socket libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/socket'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/syslog'
installing default syslog libraries
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ext/syslog'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/.bundle/gems/debug-1.8.0/ext/debug'
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/.bundle/gems/debug-1.8.0/ext/debug'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/.bundle/gems/racc-1.7.1/ext/racc/cparse'
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/.bundle/gems/racc-1.7.1/ext/racc/cparse'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/.bundle/gems/rbs-3.2.2/ext/rbs_extension'
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/.bundle/gems/rbs-3.2.2/ext/rbs_extension'
make[2]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
make[2]: 'ruby' is up to date.
make[2]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
make[1]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
make[1]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
make[1]: Nothing to be done for 'note'.
make[1]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
making enc
make[1]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
make[1]: Nothing to be done for 'enc'.
make[1]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
making trans
make[1]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
make[1]: Nothing to be done for './enc/trans'.
make[1]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
making encs
make[1]: Entering directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
make[1]: Nothing to be done for 'encs'.
make[1]: Leaving directory '/builddir/build/BUILD/ruby-3.3.0-a1e24ab484'
generating x86_64-linux-fake.rb
x86_64-linux-fake.rb updated
./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems -C . -Ilib \
-e 'ENV["GEM_HOME"] = File.expand_path(".bundle")' \
-e 'ENV["BUNDLE_APP_CONFIG"] = File.expand_path(".bundle")' \
-e 'ENV["BUNDLE_PATH__SYSTEM"] = "true"' \
-e 'ENV["BUNDLE_WITHOUT"] = "lint doc"' \
-e 'load "spec/bundler/support/bundle.rb"' -- install --quiet --gemfile=tool/bundler/dev_gems.rb
./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems \
-r./x86_64-linux-fake \
-e "ARGV[-1] = File.expand_path(ARGV[-1])" \
-e "exec(*ARGV)" -- \
./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems -I./spec/bundler \
-e "ENV['PARALLEL_TESTS_EXECUTABLE'] = ARGV.shift" \
-e "load ARGV.shift" \
"./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems -C . -Ispec/bundler:spec/lib .bundle/bin/rspec" \
./.bundle/bin/parallel_rspec \
-o "--require spec_helper --require formatter_overrides" \
--runtime-log ./tmp/parallel_runtime_rspec.log ./spec/bundler/
8 processes for 169 specs, ~ 21 specs per process
An error occurred in a `before(:suite)` hook.
Failure/Error:
raise <<~ERROR
Invoking `#{cmd}` failed with output:
----------------------------------------------------------------------
#{command_execution.stdboth}
----------------------------------------------------------------------
ERROR
RuntimeError:
Invoking `/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby -rrubygems /builddir/build/BUILD/ruby-3.3.0-a1e24ab484/bin/gem --backtrace build lib/bundler/bundler.gemspec` failed with output:
----------------------------------------------------------------------
/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby: error while loading shared libraries: libruby.so.3.3: cannot open shared object file: No such file or directory
----------------------------------------------------------------------
# ./spec/bundler/support/helpers.rb:202:in `sys_exec'
# ./spec/bundler/support/helpers.rb:165:in `gem_command'
# ./spec/bundler/support/helpers.rb:343:in `with_built_bundler'
# ./spec/bundler/support/helpers.rb:304:in `block (2 levels) in system_gems'
# ./spec/bundler/support/helpers.rb:300:in `each'
# ./spec/bundler/support/helpers.rb:300:in `block in system_gems'
# ./spec/bundler/support/helpers.rb:357:in `block in with_gem_path_as'
# ./spec/bundler/support/helpers.rb:371:in `without_env_side_effects'
# ./spec/bundler/support/helpers.rb:352:in `with_gem_path_as'
# ./spec/bundler/support/helpers.rb:298:in `system_gems'
# ./spec/bundler/spec_helper.rb:92:in `block (2 levels) in <top (required)>'
Finished in 0.36529 seconds (files took 0.67828 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
An error occurred in a `before(:suite)` hook.
Failure/Error:
raise <<~ERROR
Invoking `#{cmd}` failed with output:
----------------------------------------------------------------------
#{command_execution.stdboth}
----------------------------------------------------------------------
ERROR
RuntimeError:
Invoking `/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby -rrubygems /builddir/build/BUILD/ruby-3.3.0-a1e24ab484/bin/gem --backtrace build lib/bundler/bundler.gemspec` failed with output:
----------------------------------------------------------------------
/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby: error while loading shared libraries: libruby.so.3.3: cannot open shared object file: No such file or directory
----------------------------------------------------------------------
# ./spec/bundler/support/helpers.rb:202:in `sys_exec'
# ./spec/bundler/support/helpers.rb:165:in `gem_command'
# ./spec/bundler/support/helpers.rb:343:in `with_built_bundler'
# ./spec/bundler/support/helpers.rb:304:in `block (2 levels) in system_gems'
# ./spec/bundler/support/helpers.rb:300:in `each'
# ./spec/bundler/support/helpers.rb:300:in `block in system_gems'
# ./spec/bundler/support/helpers.rb:357:in `block in with_gem_path_as'
# ./spec/bundler/support/helpers.rb:371:in `without_env_side_effects'
# ./spec/bundler/support/helpers.rb:352:in `with_gem_path_as'
# ./spec/bundler/support/helpers.rb:298:in `system_gems'
# ./spec/bundler/spec_helper.rb:92:in `block (2 levels) in <top (required)>'
Finished in 0.4346 seconds (files took 0.62401 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
An error occurred in a `before(:suite)` hook.
Failure/Error:
raise <<~ERROR
Invoking `#{cmd}` failed with output:
----------------------------------------------------------------------
#{command_execution.stdboth}
----------------------------------------------------------------------
ERROR
RuntimeError:
Invoking `/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby -rrubygems /builddir/build/BUILD/ruby-3.3.0-a1e24ab484/bin/gem --backtrace build lib/bundler/bundler.gemspec` failed with output:
----------------------------------------------------------------------
/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby: error while loading shared libraries: libruby.so.3.3: cannot open shared object file: No such file or directory
----------------------------------------------------------------------
# ./spec/bundler/support/helpers.rb:202:in `sys_exec'
# ./spec/bundler/support/helpers.rb:165:in `gem_command'
# ./spec/bundler/support/helpers.rb:343:in `with_built_bundler'
# ./spec/bundler/support/helpers.rb:304:in `block (2 levels) in system_gems'
# ./spec/bundler/support/helpers.rb:300:in `each'
# ./spec/bundler/support/helpers.rb:300:in `block in system_gems'
# ./spec/bundler/support/helpers.rb:357:in `block in with_gem_path_as'
# ./spec/bundler/support/helpers.rb:371:in `without_env_side_effects'
# ./spec/bundler/support/helpers.rb:352:in `with_gem_path_as'
# ./spec/bundler/support/helpers.rb:298:in `system_gems'
# ./spec/bundler/spec_helper.rb:92:in `block (2 levels) in <top (required)>'
Finished in 0.37847 seconds (files took 0.71128 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
An error occurred in a `before(:suite)` hook.
Failure/Error:
raise <<~ERROR
Invoking `#{cmd}` failed with output:
----------------------------------------------------------------------
#{command_execution.stdboth}
----------------------------------------------------------------------
ERROR
RuntimeError:
Invoking `/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby -rrubygems /builddir/build/BUILD/ruby-3.3.0-a1e24ab484/bin/gem --backtrace build lib/bundler/bundler.gemspec` failed with output:
----------------------------------------------------------------------
/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby: error while loading shared libraries: libruby.so.3.3: cannot open shared object file: No such file or directory
----------------------------------------------------------------------
# ./spec/bundler/support/helpers.rb:202:in `sys_exec'
# ./spec/bundler/support/helpers.rb:165:in `gem_command'
# ./spec/bundler/support/helpers.rb:343:in `with_built_bundler'
# ./spec/bundler/support/helpers.rb:304:in `block (2 levels) in system_gems'
# ./spec/bundler/support/helpers.rb:300:in `each'
# ./spec/bundler/support/helpers.rb:300:in `block in system_gems'
# ./spec/bundler/support/helpers.rb:357:in `block in with_gem_path_as'
# ./spec/bundler/support/helpers.rb:371:in `without_env_side_effects'
# ./spec/bundler/support/helpers.rb:352:in `with_gem_path_as'
# ./spec/bundler/support/helpers.rb:298:in `system_gems'
# ./spec/bundler/spec_helper.rb:92:in `block (2 levels) in <top (required)>'
Finished in 0.32898 seconds (files took 0.78975 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
An error occurred in a `before(:suite)` hook.
Failure/Error:
raise <<~ERROR
Invoking `#{cmd}` failed with output:
----------------------------------------------------------------------
#{command_execution.stdboth}
----------------------------------------------------------------------
ERROR
RuntimeError:
Invoking `/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby -rrubygems /builddir/build/BUILD/ruby-3.3.0-a1e24ab484/bin/gem --backtrace build lib/bundler/bundler.gemspec` failed with output:
----------------------------------------------------------------------
/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby: error while loading shared libraries: libruby.so.3.3: cannot open shared object file: No such file or directory
----------------------------------------------------------------------
# ./spec/bundler/support/helpers.rb:202:in `sys_exec'
# ./spec/bundler/support/helpers.rb:165:in `gem_command'
# ./spec/bundler/support/helpers.rb:343:in `with_built_bundler'
# ./spec/bundler/support/helpers.rb:304:in `block (2 levels) in system_gems'
# ./spec/bundler/support/helpers.rb:300:in `each'
# ./spec/bundler/support/helpers.rb:300:in `block in system_gems'
# ./spec/bundler/support/helpers.rb:357:in `block in with_gem_path_as'
# ./spec/bundler/support/helpers.rb:371:in `without_env_side_effects'
# ./spec/bundler/support/helpers.rb:352:in `with_gem_path_as'
# ./spec/bundler/support/helpers.rb:298:in `system_gems'
# ./spec/bundler/spec_helper.rb:92:in `block (2 levels) in <top (required)>'
Finished in 0.41138 seconds (files took 0.77373 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
An error occurred in a `before(:suite)` hook.
Failure/Error:
raise <<~ERROR
Invoking `#{cmd}` failed with output:
----------------------------------------------------------------------
#{command_execution.stdboth}
----------------------------------------------------------------------
ERROR
RuntimeError:
Invoking `/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby -rrubygems /builddir/build/BUILD/ruby-3.3.0-a1e24ab484/bin/gem --backtrace build lib/bundler/bundler.gemspec` failed with output:
----------------------------------------------------------------------
/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby: error while loading shared libraries: libruby.so.3.3: cannot open shared object file: No such file or directory
----------------------------------------------------------------------
# ./spec/bundler/support/helpers.rb:202:in `sys_exec'
# ./spec/bundler/support/helpers.rb:165:in `gem_command'
# ./spec/bundler/support/helpers.rb:343:in `with_built_bundler'
# ./spec/bundler/support/helpers.rb:304:in `block (2 levels) in system_gems'
# ./spec/bundler/support/helpers.rb:300:in `each'
# ./spec/bundler/support/helpers.rb:300:in `block in system_gems'
# ./spec/bundler/support/helpers.rb:357:in `block in with_gem_path_as'
# ./spec/bundler/support/helpers.rb:371:in `without_env_side_effects'
# ./spec/bundler/support/helpers.rb:352:in `with_gem_path_as'
# ./spec/bundler/support/helpers.rb:298:in `system_gems'
# ./spec/bundler/spec_helper.rb:92:in `block (2 levels) in <top (required)>'
Finished in 0.46772 seconds (files took 0.7346 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
An error occurred in a `before(:suite)` hook.
Failure/Error:
raise <<~ERROR
Invoking `#{cmd}` failed with output:
----------------------------------------------------------------------
#{command_execution.stdboth}
----------------------------------------------------------------------
ERROR
RuntimeError:
Invoking `/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby -rrubygems /builddir/build/BUILD/ruby-3.3.0-a1e24ab484/bin/gem --backtrace build lib/bundler/bundler.gemspec` failed with output:
----------------------------------------------------------------------
/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby: error while loading shared libraries: libruby.so.3.3: cannot open shared object file: No such file or directory
----------------------------------------------------------------------
# ./spec/bundler/support/helpers.rb:202:in `sys_exec'
# ./spec/bundler/support/helpers.rb:165:in `gem_command'
# ./spec/bundler/support/helpers.rb:343:in `with_built_bundler'
# ./spec/bundler/support/helpers.rb:304:in `block (2 levels) in system_gems'
# ./spec/bundler/support/helpers.rb:300:in `each'
# ./spec/bundler/support/helpers.rb:300:in `block in system_gems'
# ./spec/bundler/support/helpers.rb:357:in `block in with_gem_path_as'
# ./spec/bundler/support/helpers.rb:371:in `without_env_side_effects'
# ./spec/bundler/support/helpers.rb:352:in `with_gem_path_as'
# ./spec/bundler/support/helpers.rb:298:in `system_gems'
# ./spec/bundler/spec_helper.rb:92:in `block (2 levels) in <top (required)>'
Finished in 0.35757 seconds (files took 0.73007 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
An error occurred in a `before(:suite)` hook.
Failure/Error:
raise <<~ERROR
Invoking `#{cmd}` failed with output:
----------------------------------------------------------------------
#{command_execution.stdboth}
----------------------------------------------------------------------
ERROR
RuntimeError:
Invoking `/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby -rrubygems /builddir/build/BUILD/ruby-3.3.0-a1e24ab484/bin/gem --backtrace build lib/bundler/bundler.gemspec` failed with output:
----------------------------------------------------------------------
/builddir/build/BUILD/ruby-3.3.0-a1e24ab484/ruby: error while loading shared libraries: libruby.so.3.3: cannot open shared object file: No such file or directory
----------------------------------------------------------------------
# ./spec/bundler/support/helpers.rb:202:in `sys_exec'
# ./spec/bundler/support/helpers.rb:165:in `gem_command'
# ./spec/bundler/support/helpers.rb:343:in `with_built_bundler'
# ./spec/bundler/support/helpers.rb:304:in `block (2 levels) in system_gems'
# ./spec/bundler/support/helpers.rb:300:in `each'
# ./spec/bundler/support/helpers.rb:300:in `block in system_gems'
# ./spec/bundler/support/helpers.rb:357:in `block in with_gem_path_as'
# ./spec/bundler/support/helpers.rb:371:in `without_env_side_effects'
# ./spec/bundler/support/helpers.rb:352:in `with_gem_path_as'
# ./spec/bundler/support/helpers.rb:298:in `system_gems'
# ./spec/bundler/spec_helper.rb:92:in `block (2 levels) in <top (required)>'
Finished in 0.24372 seconds (files took 1.05 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
Tests Failed
8 errors, 0 examples, 0 failures
Took 1 seconds
make: *** [uncommon.mk:1626: yes-test-bundler-parallel] Error 1
</code></pre> Ruby master - Feature #19972 (Assigned): Install default/bundled gems into dedicated directorieshttps://bugs.ruby-lang.org/issues/199722023-10-25T15:30:22Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>I think that the current situation, where the same directory (lets call it <code>Gem.default_dir</code>) is used for default/bundled gems as well as for user installed gems, is suboptimal. During the times, this has caused us quite some issue on Fedora. Historically, we redefined the <code>Gem.default_dir</code> to user home directory, to avoid the mixing of system gems and user installed gems. Unfortunately, with advent of default/bundled gems, we were facing issues that these gems were suddenly not listed, etc. I am realizing this issue in full once again since the "user install" RubyGems feature has landed <a href="https://github.com/rubygems/rubygems/pull/5327" class="external">1</a>. I also think that we have arrived to this situation by evolution, not by design.</p>
<p>Therefore my proposal is:</p>
<p>Keep the <code>Gem.default_dir</code> for user <code>gem install</code>ed gems and lets install default and bundled gems into separate dedicated directories. Have separate <code>Gem.bundled_gems_dir</code> and <code>Gem.default_gems_dir</code> structures.</p>
<p>Of course, if <code>Gem.default_dir == Gem.bundled_gems_dir == Gem.default_gems_dir</code>, we still can have the current layout.</p>
<p>I have a simple POC here:</p>
<p><a href="https://github.com/ruby/ruby/pull/8761" class="external">https://github.com/ruby/ruby/pull/8761</a></p>
<p>BTW I have reported it here, because I think that RubyGems provides all it is needed. So it is not RubyGems ticket after all. However, I believe that RubyGems could benefit from this long term and some simplifications/cleanups would be possible.</p> Ruby master - Bug #19891 (Open): rb_mRubyVMFrozenCore is reported by DTrace but ignored by TraceP...https://bugs.ruby-lang.org/issues/198912023-09-19T06:54:05Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>This is related to <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: rb_mRubyVMFrozenCore is broken by GC run (Closed)" href="https://bugs.ruby-lang.org/issues/18257">#18257</a> where I wonder why rb_mRubyVMFrozenCore is ignored by TracePoint (if I am not mistaken) <a href="https://github.com/ruby/ruby/blob/647390308239fbf82d159ecd83ed8df090af518d/vm_trace.c#L431" class="external">1</a>:</p>
<pre><code> if (ec->trace_arg == NULL && /* check reentrant */
trace_arg->self != rb_mRubyVMFrozenCore /* skip special methods. TODO: remove it. */) {
</code></pre>
<p>This was introduced in <a class="changeset" title="* vm_core.h (exec_event_hooks): skips RubyVM::FrozenCore. git-svn-id: svn+ssh://ci.ruby-lang.or..." href="https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/1be7c799e6ed39f7ac41906c05db149e8c391add">git|1be7c799e6ed39f7ac41906c05db149e8c391add</a> but hard to guess what was the reason. If there were issues similar to @18257 or if it is by design.</p>
<p>The <code>TODO</code> part was introduced by <a class="changeset" title="* vm_trace.c, vm_core.h: simplify tracing mechanism. (1) add rb_hook_list_t data structure whic..." href="https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/4a4a702e61d1c5585d522f1185a82a5685c554f6">git|4a4a702e61d1c5585d522f1185a82a5685c554f6</a> which also does not give a clue what is intention here.</p>
<p>Generally, my point is that it is strange that DTrace would report about rb_mRubyVMFrozenCore while TracePoint is happy to skip it.</p> Ruby master - Bug #19869 (Open): Mark skipped test somehowhttps://bugs.ruby-lang.org/issues/198692023-09-08T15:01:20Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>When Minitest was used to execute the Ruby test suite, skipped test were cleanly marked, e.g.:</p>
<pre><code>[14036/25715] TestGemExtCmakeBuilder#test_self_build_has_makefile = s
</code></pre>
<p>However, with the test-unit the output is:</p>
<pre><code>[14036/25715] TestGemExtCmakeBuilder#test_self_build_has_makefile = 0.01 s
</code></pre>
<p>This is problematic, because running test suite, I can see that some test were skipped:</p>
<pre><code>25705 tests, 6108213 assertions, 0 failures, 0 errors, 99 skips
</code></pre>
<p>But I can't tell which. Is there a chance to fix this?</p> Ruby master - Bug #19297 (Open): Don't download content from internet to execute Ruby test suitehttps://bugs.ruby-lang.org/issues/192972023-01-02T13:41:57Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>Trying to build Ruby 3.2.0 for Fedora and execute its test suite via <code>make check</code> as we always did <a href="https://src.fedoraproject.org/rpms/ruby/blob/631163e3b8a51ed610528181aabe0da008049bb6/f/ruby.spec#_1008" class="external">1</a>, the test suite suddenly fails (while it was working with <a class="changeset" title="darwin: resolve rb symbols from ext by `-flat_namespace` to see libruby transitively This repair..." href="https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/c5eefb7f37db2865891298dd1a1e60dff09560ad">git|c5eefb7f37</a>):</p>
<pre><code>... snip ...
C-API Util function ruby_strtod
- converts a string to a double and returns the remaining string
- returns 0 and the full string if there's no numerical value
Finished in 45.737677 seconds
3827 files, 31635 examples, 177877 expectations, 0 failures, 0 errors, 0 tagged
./miniruby -I/builddir/build/BUILD/ruby-3.2.0/lib -I. -I.ext/common /builddir/build/BUILD/ruby-3.2.0/tool/runruby.rb --extout=.ext -- --disable-gems -C "/builddir/build/BUILD/ruby-3.2.0" bin/gem install --no-document \
--install-dir .bundle --conservative "bundler" "rake" "rspec:~> 3" #"ruby-prof"
ERROR: Could not find a valid gem 'bundler' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SocketError: Failed to open TCP connection to rubygems.org:443 (getaddrinfo: Temporary failure in name resolution) (https://rubygems.org/specs.4.8.gz)
ERROR: Could not find a valid gem 'rspec' (~> 3), here is why:
Unable to download data from https://rubygems.org/ - SocketError: Failed to open TCP connection to rubygems.org:443 (getaddrinfo: Temporary failure in name resolution) (https://rubygems.org/specs.4.8.gz)
make: Leaving directory '/builddir/build/BUILD/ruby-3.2.0/redhat-linux-build'
make: *** [uncommon.mk:1464: yes-test-syntax-suggest-prepare] Error 2
</code></pre>
<p>This is obviously due to the test suite trying to download <code>rspec</code> from the internet, while Fedora builders does not have internet access (and won't ever have for security reasons). If I am not mistaken, this is caused by <a class="changeset" title="Test syntax_suggest by `make check`" href="https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/cae53842735237ccf71a13873fd0d1ae7f165582">git|cae53842735237ccf71a13873fd0d1ae7f165582</a>. Now</p>
<ol>
<li>Can this be fixed?</li>
<li>Can the tarball be always self contained?</li>
</ol> Ruby master - Bug #19251 (Open): Limit amount of test failures due to updates of tzdatahttps://bugs.ruby-lang.org/issues/192512022-12-22T08:19:02Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>It seems that recently, Ruby test suite is broken ~ twice a year due to changes in tzdata. I am not sure how detailed the test suite needs to be to have the right amount of test coverage, but it would be nice if Ruby developers had more control above this changes then this changes being forced upon us via OS update. This is followup to <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: Ruby 3.1.3 testsuite fails after timezone 2022g update is applied (Closed)" href="https://bugs.ruby-lang.org/issues/19187">#19187</a>.</p>
<p>BTW with my Fedora / RHEL maintainer hat on, this is a bit annoying, because:</p>
<ol>
<li>It tends to hide other issues</li>
<li>In Fedora, it might block other development</li>
<li>Especially in RHEL, where there is not so big churn, it is unpleasant to start work on fixing CVE just to discover one needs to fix the tzdata test failures first</li>
</ol> Ruby master - Bug #18412 (Open): Segfault in test_ractor.rbhttps://bugs.ruby-lang.org/issues/184122021-12-16T09:18:39Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>During build of Ruby 3.0.3 for Fedora, I sometimes bump into this issue:</p>
<pre><code>... snip ...
test_attr.rb ..
test_autoload.rb ........
test_block.rb ..........................................................
test_class.rb ................................................
test_env.rb ..
test_eval.rb .....................................
test_exception.rb ..................................
test_fiber.rb .....
test_finalizer.rb .
test_flip.rb .
test_flow.rb ..............................................................
test_fork.rb ....
test_gc.rb ..
test_insns.rb ...............................................................................................................................................................................................................................................................................................................................................................................................
test_io.rb .........
test_jump.rb .............................
test_literal.rb ............................................................................................................................................................
test_literal_suffix.rb ................................................
test_load.rb ..
test_marshal.rb .
test_massign.rb ..................................
test_method.rb ...............................................................................................................................................................................................................................
test_objectspace.rb ......
test_proc.rb .....................................
test_ractor.rb .........................................................................................Fstderr output is not empty
<internal:ractor>:627: [BUG] Segmentation fault at 0x0000000000000038
ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [powerpc64le-linux]
-- Control frame information -----------------------------------------------
c:0005 p:0003 s:0020 e:000019 METHOD <internal:ractor>:627
c:0004 p:0032 s:0013 e:000012 BLOCK bootstraptest.tmp.rb:6 [FINISH]
c:0003 p:---- s:0010 e:000009 CFUNC :loop
c:0002 p:0005 s:0006 e:000005 BLOCK bootstraptest.tmp.rb:4 [FINISH]
c:0001 p:---- s:0003 e:000002 (none) [FINISH]
-- Ruby level backtrace information ----------------------------------------
bootstraptest.tmp.rb:4:in `block (2 levels) in <main>'
bootstraptest.tmp.rb:4:in `loop'
bootstraptest.tmp.rb:6:in `block (3 levels) in <main>'
<internal:ractor>:627:in `yield'
-- C level backtrace information -------------------------------------------
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(rb_print_backtrace+0x24) [0x7fffb1dd3604] vm_dump.c:758
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(rb_vm_bugreport.constprop.0+0x5c0) [0x7fffb1df1780] vm_dump.c:998
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(rb_bug_for_fatal_signal+0xa4) [0x7fffb1bbdc74] error.c:786
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(sigsegv+0x68) [0x7fffb1d2a4a8] signal.c:963
[0x7fffb1f80464]
[0x7fffb191ad68]
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(rb_native_mutex_lock+0x18) [0x7fffb1d6f558] thread_pthread.c:397
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(ractor_select+0x480) [0x7fffb1cda060] ractor.c:61
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(builtin_inline_class_627.lto_priv.0+0x50) [0x7fffb1cdaa30] ractor.c:1286
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(builtin_invoker0.lto_priv.0+0x24) [0x7fffb1db5624] vm_insnhelper.c:5445
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(vm_exec_core.lto_priv.0+0x254c) [0x7fffb1dbfe6c] insns.def:1493
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(rb_vm_exec+0x130) [0x7fffb1ddc7e0] vm.c:2172
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(loop_i+0x2e4) [0x7fffb1dc7bd4] vm.c:1263
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(rb_vrescue2+0xec) [0x7fffb1bbc6cc] eval.c:1019
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(rb_rescue2+0x3c) [0x7fffb1bbc8bc] eval.c:996
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(rb_f_loop.lto_priv.0+0x58) [0x7fffb1dc87c8] vm_eval.c:1483
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(ractor_safe_call_cfunc_0.lto_priv.0+0x24) [0x7fffb1da7904] vm_insnhelper.c:2748
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(vm_call_cfunc_with_frame+0x150) [0x7fffb1db2650] vm_insnhelper.c:2931
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(vm_sendish.lto_priv.0+0x3dc) [0x7fffb1db7b0c] vm_insnhelper.c:4532
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(vm_exec_core.lto_priv.0+0x1890) [0x7fffb1dbf1b0] insns.def:770
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(rb_vm_exec+0x130) [0x7fffb1ddc7e0] vm.c:2172
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(vm_invoke_proc.lto_priv.0+0x2c0) [0x7fffb1dcfc90] vm.c:1263
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(thread_do_start_proc.lto_priv.0+0x5ac) [0x7fffb1d7852c] vm.c:1499
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(thread_start_func_2.constprop.0.isra.0+0x958) [0x7fffb1dfacf8] thread.c:759
/builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3(thread_start_func_1+0x180) [0x7fffb1d70070] thread_pthread.c:994
[0x7fffb1916264]
[0x7fffb19c5f30]
-- Other runtime information -----------------------------------------------
* Loaded script: bootstraptest.tmp.rb
* Loaded features:
0 enumerator.so
1 thread.rb
2 rational.so
3 complex.so
4 ruby2_keywords.rb
5 /builddir/build/BUILD/ruby-3.0.3/.ext/powerpc64le-linux/enc/encdb.so
6 /builddir/build/BUILD/ruby-3.0.3/.ext/powerpc64le-linux/enc/trans/transdb.so
7 /builddir/build/BUILD/ruby-3.0.3/abrt.rb
* Process memory map:
102330000-102340000 r--p 00000000 fc:06 1076662947 /builddir/build/BUILD/ruby-3.0.3/ruby
102340000-102350000 r-xp 00010000 fc:06 1076662947 /builddir/build/BUILD/ruby-3.0.3/ruby
102350000-102360000 r--p 00020000 fc:06 1076662947 /builddir/build/BUILD/ruby-3.0.3/ruby
102360000-102370000 r--p 00020000 fc:06 1076662947 /builddir/build/BUILD/ruby-3.0.3/ruby
102370000-102380000 rw-p 00030000 fc:06 1076662947 /builddir/build/BUILD/ruby-3.0.3/ruby
134320000-134530000 rw-p 00000000 00:00 0 [heap]
7fff88000000-7fff88bd0000 rw-p 00000000 00:00 0
7fff88bd0000-7fff8c000000 ---p 00000000 00:00 0
7fff8c000000-7fff8cd90000 rw-p 00000000 00:00 0
7fff8cd90000-7fff90000000 ---p 00000000 00:00 0
7fff90000000-7fff901e0000 rw-p 00000000 00:00 0
7fff901e0000-7fff94000000 ---p 00000000 00:00 0
7fff94000000-7fff94be0000 rw-p 00000000 00:00 0
7fff94be0000-7fff98000000 ---p 00000000 00:00 0
7fff98000000-7fff99320000 rw-p 00000000 00:00 0
7fff99320000-7fff9c000000 ---p 00000000 00:00 0
7fff9c000000-7fff9cc40000 rw-p 00000000 00:00 0
7fff9cc40000-7fffa0000000 ---p 00000000 00:00 0
7fffa0000000-7fffa0d60000 rw-p 00000000 00:00 0
7fffa0d60000-7fffa4000000 ---p 00000000 00:00 0
7fffa7ed0000-7fffa7ee0000 ---p 00000000 00:00 0
7fffa7ee0000-7fffa8000000 rw-p 00000000 00:00 0
7fffa8000000-7fffa91a0000 rw-p 00000000 00:00 0
7fffa91a0000-7fffac000000 ---p 00000000 00:00 0
7fffada60000-7fffadaa0000 r--s 00000000 fc:06 1076662947 /builddir/build/BUILD/ruby-3.0.3/ruby
7fffadaa0000-7fffadab0000 r--p 00000000 fc:06 1614754146 /usr/lib64/libgcc_s-11-20211203.so.1
7fffadab0000-7fffadac0000 r-xp 00010000 fc:06 1614754146 /usr/lib64/libgcc_s-11-20211203.so.1
7fffadac0000-7fffadad0000 r--p 00020000 fc:06 1614754146 /usr/lib64/libgcc_s-11-20211203.so.1
7fffadad0000-7fffadae0000 r--p 00020000 fc:06 1614754146 /usr/lib64/libgcc_s-11-20211203.so.1
7fffadae0000-7fffadaf0000 rw-p 00030000 fc:06 1614754146 /usr/lib64/libgcc_s-11-20211203.so.1
7fffadaf0000-7fffadb00000 ---p 00000000 00:00 0
7fffadb00000-7fffadc20000 rw-p 00000000 00:00 0
7fffadc20000-7fffadc30000 ---p 00000000 00:00 0
7fffadc30000-7fffadd50000 rw-p 00000000 00:00 0
7fffadd50000-7fffadd60000 ---p 00000000 00:00 0
7fffadd60000-7fffade80000 rw-p 00000000 00:00 0
7fffade80000-7fffade90000 ---p 00000000 00:00 0
7fffade90000-7fffadfb0000 rw-p 00000000 00:00 0
7fffadfb0000-7fffadfc0000 ---p 00000000 00:00 0
7fffadfc0000-7fffae0e0000 rw-p 00000000 00:00 0
7fffae0e0000-7fffae0f0000 ---p 00000000 00:00 0
7fffae0f0000-7fffae210000 rw-p 00000000 00:00 0
7fffae210000-7fffae220000 ---p 00000000 00:00 0
7fffae220000-7fffae340000 rw-p 00000000 00:00 0
7fffae340000-7fffae350000 r--p 00000000 fc:06 1616770133 /builddir/build/BUILD/ruby-3.0.3/.ext/powerpc64le-linux/enc/trans/transdb.so
7fffae350000-7fffae360000 r-xp 00010000 fc:06 1616770133 /builddir/build/BUILD/ruby-3.0.3/.ext/powerpc64le-linux/enc/trans/transdb.so
7fffae360000-7fffae370000 r--p 00020000 fc:06 1616770133 /builddir/build/BUILD/ruby-3.0.3/.ext/powerpc64le-linux/enc/trans/transdb.so
7fffae370000-7fffae380000 r--p 00020000 fc:06 1616770133 /builddir/build/BUILD/ruby-3.0.3/.ext/powerpc64le-linux/enc/trans/transdb.so
7fffae380000-7fffae390000 rw-p 00000000 00:00 0
7fffae390000-7fffae3a0000 r--p 00000000 fc:06 1076646137 /builddir/build/BUILD/ruby-3.0.3/.ext/powerpc64le-linux/enc/encdb.so
7fffae3a0000-7fffae3b0000 r-xp 00010000 fc:06 1076646137 /builddir/build/BUILD/ruby-3.0.3/.ext/powerpc64le-linux/enc/encdb.so
7fffae3b0000-7fffae3c0000 r--p 00020000 fc:06 1076646137 /builddir/build/BUILD/ruby-3.0.3/.ext/powerpc64le-linux/enc/encdb.so
7fffae3c0000-7fffae3d0000 r--p 00020000 fc:06 1076646137 /builddir/build/BUILD/ruby-3.0.3/.ext/powerpc64le-linux/enc/encdb.so
7fffae3d0000-7fffae3e0000 rw-p 00000000 00:00 0
7fffae3e0000-7fffae3f0000 ---p 00000000 00:00 0
7fffae3f0000-7fffae460000 rw-p 00000000 00:00 0
7fffae460000-7fffae470000 ---p 00000000 00:00 0
7fffae470000-7fffae4e0000 rw-p 00000000 00:00 0
7fffae4e0000-7fffae4f0000 ---p 00000000 00:00 0
7fffae4f0000-7fffae560000 rw-p 00000000 00:00 0
7fffae560000-7fffae570000 ---p 00000000 00:00 0
7fffae570000-7fffae5e0000 rw-p 00000000 00:00 0
7fffae5e0000-7fffae5f0000 ---p 00000000 00:00 0
7fffae5f0000-7fffae660000 rw-p 00000000 00:00 0
7fffae660000-7fffae670000 ---p 00000000 00:00 0
7fffae670000-7fffae6e0000 rw-p 00000000 00:00 0
7fffae6e0000-7fffae6f0000 ---p 00000000 00:00 0
7fffae6f0000-7fffae760000 rw-p 00000000 00:00 0
7fffae760000-7fffae770000 ---p 00000000 00:00 0
7fffae770000-7fffae7e0000 rw-p 00000000 00:00 0
7fffae7e0000-7fffae7f0000 ---p 00000000 00:00 0
7fffae7f0000-7fffae860000 rw-p 00000000 00:00 0
7fffae860000-7fffae870000 ---p 00000000 00:00 0
7fffae870000-7fffae8e0000 rw-p 00000000 00:00 0
7fffae8e0000-7fffae8f0000 ---p 00000000 00:00 0
7fffae8f0000-7fffae960000 rw-p 00000000 00:00 0
7fffae960000-7fffae970000 ---p 00000000 00:00 0
7fffae970000-7fffae9e0000 rw-p 00000000 00:00 0
7fffae9e0000-7fffae9f0000 ---p 00000000 00:00 0
7fffae9f0000-7fffaea60000 rw-p 00000000 00:00 0
7fffaea60000-7fffaea70000 ---p 00000000 00:00 0
7fffaea70000-7fffaeae0000 rw-p 00000000 00:00 0
7fffaeae0000-7fffaeaf0000 ---p 00000000 00:00 0
7fffaeaf0000-7fffaeb60000 rw-p 00000000 00:00 0
7fffaeb60000-7fffaeb70000 ---p 00000000 00:00 0
7fffaeb70000-7fffaebe0000 rw-p 00000000 00:00 0
7fffaebe0000-7fffaebf0000 ---p 00000000 00:00 0
7fffaebf0000-7fffaec60000 rw-p 00000000 00:00 0
7fffaec60000-7fffaec70000 ---p 00000000 00:00 0
7fffaec70000-7fffaece0000 rw-p 00000000 00:00 0
7fffaece0000-7fffaecf0000 ---p 00000000 00:00 0
7fffaecf0000-7fffaed60000 rw-p 00000000 00:00 0
7fffaed60000-7fffaed70000 ---p 00000000 00:00 0
7fffaed70000-7fffaede0000 rw-p 00000000 00:00 0
7fffaede0000-7fffaedf0000 ---p 00000000 00:00 0
7fffaedf0000-7fffaee60000 rw-p 00000000 00:00 0
7fffaee60000-7fffaee70000 ---p 00000000 00:00 0
7fffaee70000-7fffaeee0000 rw-p 00000000 00:00 0
7fffaeee0000-7fffaeef0000 ---p 00000000 00:00 0
7fffaeef0000-7fffaef60000 rw-p 00000000 00:00 0
7fffaef60000-7fffaef70000 ---p 00000000 00:00 0
7fffaef70000-7fffaefe0000 rw-p 00000000 00:00 0
7fffaefe0000-7fffaeff0000 ---p 00000000 00:00 0
7fffaeff0000-7fffaf060000 rw-p 00000000 00:00 0
7fffaf060000-7fffaf070000 ---p 00000000 00:00 0
7fffaf070000-7fffaf0e0000 rw-p 00000000 00:00 0
7fffaf0e0000-7fffaf0f0000 ---p 00000000 00:00 0
7fffaf0f0000-7fffaf160000 rw-p 00000000 00:00 0
7fffaf160000-7fffaf170000 ---p 00000000 00:00 0
7fffaf170000-7fffaf1e0000 rw-p 00000000 00:00 0
7fffaf1e0000-7fffaf1f0000 ---p 00000000 00:00 0
7fffaf1f0000-7fffaf260000 rw-p 00000000 00:00 0
7fffaf260000-7fffaf270000 ---p 00000000 00:00 0
7fffaf270000-7fffaf2e0000 rw-p 00000000 00:00 0
7fffaf2e0000-7fffaf2f0000 ---p 00000000 00:00 0
7fffaf2f0000-7fffaf360000 rw-p 00000000 00:00 0
7fffaf360000-7fffaf370000 ---p 00000000 00:00 0
7fffaf370000-7fffb1570000 rw-p 00000000 00:00 0
7fffb1570000-7fffb1590000 r--p 00000000 fc:06 1615030600 /usr/lib64/libm.so.6
7fffb1590000-7fffb1650000 r-xp 00020000 fc:06 1615030600 /usr/lib64/libm.so.6
7fffb1650000-7fffb16b0000 r--p 000e0000 fc:06 1615030600 /usr/lib64/libm.so.6
7fffb16b0000-7fffb16c0000 r--p 00130000 fc:06 1615030600 /usr/lib64/libm.so.6
7fffb16c0000-7fffb16d0000 rw-p 00140000 fc:06 1615030600 /usr/lib64/libm.so.6
7fffb16d0000-7fffb16e0000 r--p 00000000 fc:06 1615031006 /usr/lib64/libcrypt.so.2.0.0
7fffb16e0000-7fffb1700000 r-xp 00010000 fc:06 1615031006 /usr/lib64/libcrypt.so.2.0.0
7fffb1700000-7fffb1720000 r--p 00030000 fc:06 1615031006 /usr/lib64/libcrypt.so.2.0.0
7fffb1720000-7fffb1730000 r--p 00040000 fc:06 1615031006 /usr/lib64/libcrypt.so.2.0.0
7fffb1730000-7fffb1740000 rw-p 00000000 00:00 0
7fffb1740000-7fffb1750000 r--p 00000000 fc:06 1615031014 /usr/lib64/libgmp.so.10.4.1
7fffb1750000-7fffb17d0000 r-xp 00010000 fc:06 1615031014 /usr/lib64/libgmp.so.10.4.1
7fffb17d0000-7fffb17f0000 r--p 00090000 fc:06 1615031014 /usr/lib64/libgmp.so.10.4.1
7fffb17f0000-7fffb1800000 r--p 000a0000 fc:06 1615031014 /usr/lib64/libgmp.so.10.4.1
7fffb1800000-7fffb1810000 rw-p 000b0000 fc:06 1615031014 /usr/lib64/libgmp.so.10.4.1
7fffb1810000-7fffb1830000 r-xp 00000000 fc:06 1615030899 /usr/lib64/libz.so.1.2.11
7fffb1830000-7fffb1840000 r--p 00010000 fc:06 1615030899 /usr/lib64/libz.so.1.2.11
7fffb1840000-7fffb1850000 rw-p 00020000 fc:06 1615030899 /usr/lib64/libz.so.1.2.11
7fffb1850000-7fffb1890000 r--p 00000000 fc:06 1615030597 /usr/lib64/libc.so.6
7fffb1890000-7fffb1a40000 r-xp 00040000 fc:06 1615030597 /usr/lib64/libc.so.6
7fffb1a40000-7fffb1ab0000 r--p 001f0000 fc:06 1615030597 /usr/lib64/libc.so.6
7fffb1ab0000-7fffb1ac0000 r--p 00250000 fc:06 1615030597 /usr/lib64/libc.so.6
7fffb1ac0000-7fffb1ad0000 rw-p 00260000 fc:06 1615030597 /usr/lib64/libc.so.6
7fffb1ae0000-7fffb1b20000 r--p 00000000 fc:06 1077936030 /builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3
7fffb1b20000-7fffb1e10000 r-xp 00040000 fc:06 1077936030 /builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3
7fffb1e10000-7fffb1f20000 r--p 00330000 fc:06 1077936030 /builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3
7fffb1f20000-7fffb1f30000 ---p 00440000 fc:06 1077936030 /builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3
7fffb1f30000-7fffb1f40000 r--p 00440000 fc:06 1077936030 /builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3
7fffb1f40000-7fffb1f50000 rw-p 00450000 fc:06 1077936030 /builddir/build/BUILD/ruby-3.0.3/libruby.so.3.0.3
7fffb1f50000-7fffb1f60000 rw-p 00000000 00:00 0
7fffb1f60000-7fffb1f80000 r--p 00000000 00:00 0 [vvar]
7fffb1f80000-7fffb1f90000 r-xp 00000000 00:00 0 [vdso]
7fffb1f90000-7fffb1fa0000 r--p 00000000 fc:06 1615030592 /usr/lib64/ld64.so.2
7fffb1fa0000-7fffb1ff0000 r-xp 00010000 fc:06 1615030592 /usr/lib64/ld64.so.2
7fffb1ff0000-7fffb2000000 r--p 00060000 fc:06 1615030592 /usr/lib64/ld64.so.2
7fffb2000000-7fffb2010000 r--p 00060000 fc:06 1615030592 /usr/lib64/ld64.so.2
7fffb2010000-7fffb2020000 rw-p 00070000 fc:06 1615030592 /usr/lib64/ld64.so.2
7fffd3830000-7fffd4030000 rw-p 00000000 00:00 0 [stack]
test_string.rb .
test_struct.rb .
test_syntax.rb ............................................................................................................................................................
test_thread.rb .................................................
Fiber count: 10000 (skipping)
#1282 test_ractor.rb:1405:in `<top (required)>':
workers = (0...8).map do
Ractor.new do
loop do
10_000.times.map { Object.new }
Ractor.yield Time.now
end
end
end
1_000.times { idle_worker, tmp_reporter = Ractor.select(*workers) }
"ok"
#=> "" (expected "ok")
FAIL 1/1489 tests failed
make: *** [uncommon.mk:767: yes-btest-ruby] Error 1
... snip ...
</code></pre>
<p>It reminds me <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: Segmentation fault when yielding values from Ractors during GC sweeping (Closed)" href="https://bugs.ruby-lang.org/issues/18117">#18117</a>, but that should be fixed, right?</p> Ruby master - Feature #18401 (Open): Rework `require_relative` to add the "current path" on `$LOA...https://bugs.ruby-lang.org/issues/184012021-12-09T17:41:24Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>I think that since inception of <code>require_relative</code>, the implementation is wrong and is going against the spirit of <code>require</code> functionality. Let me explain.</p>
<p>If there is <code>require "foo"</code>, it does something like:</p>
<pre><code>r = $LOAD_PATH.select {|lp| File.exist? File.join(lp, "foo")}.first
load(r)
</code></pre>
<p>But <code>require_relative "foo"</code> does something different:</p>
<pre><code>r = File.join(File.realpath(__dir__), "foo")
load(r)
</code></pre>
<p>Please note that this is problematic if mixture of <code>require</code> and <code>require_relative</code> (not mentioning <code>__FILE__</code> and <code>__dir__</code> are used. The major difference is actually the <code>File.realpath</code> here, because it expands symlinks and that is difference to <code>require</code> and may allow double loading.</p>
<p>My proposal is to change the <code>require_relative</code> in following way:</p>
<pre><code>$LOAD_PATH.unshift __dir__
require "foo"
</code></pre>
<p>In essence, non of the <code>require_relative</code>, <code>require</code>, <code>__FILE__</code> or <code>__dir__</code> would need to use real path. The scenario bellow would provide expected output:</p>
<pre><code>$ mkdir a
$ mkdir b
$ echo 'puts __dir__' > a/test.rb
$ cd b
$ ln -s ../a/test.rb test.rb
$ ruby test.rb
/home/vondruch/ruby/a
</code></pre>
<p>This would also resolve issues such as <a class="issue tracker-2 status-1 priority-4 priority-default" title="Feature: Ruby should not use realpath for __FILE__ (Open)" href="https://bugs.ruby-lang.org/issues/16978">#16978</a>, <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: require_relative and require should be compatible with each other when symlinks are used (Closed)" href="https://bugs.ruby-lang.org/issues/10222">#10222</a> or <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: require_relative and require should be compatible with each other when symlinked files are used (Closed)" href="https://bugs.ruby-lang.org/issues/17885">#17885</a></p> Ruby master - Feature #18376 (Open): Version comparison APIhttps://bugs.ruby-lang.org/issues/183762021-12-01T16:56:05Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>Is there a chance to have version comparison API? For example if <code>Gem::Version</code> was extracted into <code>::Version</code>. This idea was triggered by this PR <a href="https://github.com/mperham/connection_pool/pull/157" class="external">1</a> and <a href="https://github.com/mperham/connection_pool/issues/158" class="external">2</a>, where the <code>Gem::Version</code> API is used for comparing Ruby versions. While RubyGems might be available everywhere, it does not look correct to introduce dependencies on RubyGems into libraries which could run without them just fine.</p> Ruby master - Misc #17337 (Open): Don't embed Ruby build-time configuration in Rubyhttps://bugs.ruby-lang.org/issues/173372020-11-20T09:49:55Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>When Ruby 3.0 is built without C++ compiler available, subsequent builds of Eventmachine extensions (or any other gems that require C++ compiler) fail:</p>
<pre><code>... snip ...
"make \"DESTDIR=\""
I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -DHAVE_OPENSSL_SSL_H -DHAVE_OPENSSL_ERR_H -DWITH_SSL -DBUILD_FOR_RUBY -DHAVE_RB_THREAD_CALL_WITHOUT_GVL -DHAVE_RB_THREAD_FD_SELECT -DHAVE_TYPE_RB_FDSET_T -DHAVE_RB_WAIT_FOR_SINGLE_FD -DHAVE_RB_TIME_NEW -DHAVE_INOTIFY_INIT -DHAVE_INOTIFY -DHAVE_WRITEV -DHAVE_PIPE2 -DHAVE_ACCEPT4 -DHAVE_CONST_SOCK_CLOEXEC -DOS_UNIX -DHAVE_EPOLL_CREATE -DHAVE_EPOLL -DHAVE_CLOCK_GETTIME -DHAVE_CONST_CLOCK_MONOTONIC_RAW -DHAVE_CONST_CLOCK_MONOTONIC -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -m64 -o binder.o -c binder.cpp
make: I.: No such file or directory
make: [Makefile:237: binder.o] Error 127 (ignored)
</code></pre>
<p>This happens since <a href="https://github.com/ruby/ruby/commit/50b18e81295ad2d45975e4d8ea1e0c7e85140b97" class="external">1</a>.</p>
<p>I would like to question not just the commit, but the whole principle. Availability of C++ compiler during build of Ruby does not have anything to do with availability of C++ compiler during build of whatever Ruby extension.</p>
<p>Moreover, the machine where Ruby is built might be different from the machine where Ruby is used and the extension is installed. Typical examples are binary Linux distributions. RVM also uses precompiled Ruby binaries if I am not mistaken.</p>
<p>Therefore, I would appreciate if we reconsider embedding Ruby build-time configuration in Ruby and reusing it for Ruby extension build. This would solve the issue of Eventmachine I started with, and also issues such as <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: Ruby configuration options should not be reused for gem builds (Closed)" href="https://bugs.ruby-lang.org/issues/14422">#14422</a></p>
<p>Just FTR, to avoid this kind of issues, as a Ruby maintainer on Red Hat platforms, I am considering to ship rbconfig.rb in vendorlib, which would dynamically fix these issues. E.g. set the <code>CONFIG['CXX']</code> based on C++ compiler availability during extension build. But I'd like to avoid it, at least as a downstream modification.</p> Ruby master - Feature #16978 (Open): Ruby should not use realpath for __FILE__https://bugs.ruby-lang.org/issues/169782020-06-23T07:29:33Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>This is the simplest test case:</p>
<pre><code>$ mkdir a
$ echo "puts __FILE__" > a/test.rb
$ ln -s a b
$ ruby -Ib -e "require 'test'"
/builddir/a/test.rb
</code></pre>
<p>This behavior is problematic, because Ruby should not know nothing about the <code>a</code> directory. It was not instructed to use it. I should always refer to the file using the original path and do not dig into the underlying details, otherwise depending on file system setup, one might be forced to used <code>File.realpath</code> everywhere trying to use <code>__FILE__</code>.</p> Ruby master - Feature #16657 (Assigned): Don't ship bundled gems as .gem files as well as in expa...https://bugs.ruby-lang.org/issues/166572020-02-27T06:50:02Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>Working at <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: Extensions Do Not Compile on Mingw64 with mingw32-make (Closed)" href="https://bugs.ruby-lang.org/issues/16651">#16651</a>, I wonder why the release tarball ships with the bundled gem in form of .gem packages as well as the expanded sources. It would be nice, if one option is chosen. Ideally just the .gem packages, because these are vanilla upstream packages installable via RubyGems without rbinstall magic.</p> Ruby master - Feature #16018 (Open): Add a way to deprecate methodshttps://bugs.ruby-lang.org/issues/160182019-07-24T15:04:28Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>Since <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Feature: deprecate constants (Closed)" href="https://bugs.ruby-lang.org/issues/11398">#11398</a>, We have <code>Module#deprecate_constant</code> available. But I wonder, why we don't have a way to deprecate methods? There is already <code>Gem::Deprecate</code> <a href="https://github.com/ruby/ruby/blob/master/lib/rubygems/deprecate.rb" class="external">1</a>, so may be this could be extracted and made more generic?</p>
<p>This might be useful on several places in Ruby code:</p>
<pre><code>$ find . -name \*.rb -type f -exec grep -r '[^_]warn.*deprecate' {} \; | wc -l
66
</code></pre> Ruby master - Feature #14737 (Assigned): Split default gems into separate directory structurehttps://bugs.ruby-lang.org/issues/147372018-05-04T10:38:57Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>On Fedora, we are using operating_system.rb <a href="https://src.fedoraproject.org/rpms/ruby/blob/master/f/operating_system.rb" class="external">1</a>, <a href="https://src.fedoraproject.org/rpms/ruby/blob/f27/f/operating_system.rb" class="external">2</a> to setup various RubyGems paths. Unfortunately, if we change Gem.default_dir (which we want to point into user home directory on Fedora), then this also changes location for default gems (!!), which are later not discovered by RubyGems <a href="https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org/message/RZUUKFMNKRB6TGKCQT3FLZYANP5WLEKN/" class="external">3</a>. It was not been a big deal for use, since we used to unbundle the gems shipped in Ruby, but with the gemification of StdLib, unbundlig becomes unsustainable (it is more work, but mainly it is incompatible change).</p>
<p>To fix this issue, I modified the operating_system.rb to behave similarly to what Arch does <a href="https://wiki.archlinux.org/index.php/ruby" class="external">4</a>, i.e. we started to inject "--user-install" option <a href="https://src.fedoraproject.org/rpms/ruby/blob/master/f/operating_system.rb" class="external">1</a>. Unfortunately, this revealed the RubyGems are not respecting their own interfaces and I had to fix at least one of them along the way to make it work <a href="https://github.com/rubygems/rubygems/pull/2116" class="external">6</a>. Apparently, using the "--user-install" option itself has some drawbacks and what is worse, it is not respected by Bundler, which was recently pointed out <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1574594" class="external">5</a>.</p>
<p>When I was fixing RubyGems <a href="https://github.com/rubygems/rubygems/pull/2116" class="external">6</a>, I just realized how the default gems are hacked up and how much is the original RubyGems configurability broken by this. This leads me to the proposal: <strong>Could we please install default gems into different directory then the other, user installed, gems?</strong> Since RubyGems were always designed to support various gem directory structures, the directory structure for default gems would become just other directory directory structure and would not collide with overrides in operating_system.rb, letting the distributions to override what was always designed to be overridable.</p>
<p>BTW I believe that one nice side effect of this change would be simplification of RubyGems code base. The default gems would live in "default_gems" directory, their .gemspec files could be in standard "default_gems/specifications" directory and we could forget about "default_gems/specifications/defaults", etc.</p>
<p>BTW2 I could fill this against RubyGems, but the default gems are Ruby stuff IMO, so I think this is appropriate tracker.</p> Ruby master - Bug #14480 (Open): miniruby crashing when compiled with -O2 or -O1 on aarch64https://bugs.ruby-lang.org/issues/144802018-02-16T08:54:55Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>Recently, it is not possible to build Ruby 2.5.0 on aarch64 on Fedora Rawhide, because miniruby fails during build:</p>
<pre><code>... snip ...
./miniruby -I./lib -I. -I.ext/common -n \
-e 'BEGIN{version=ARGV.shift;mis=ARGV.dup}' \
-e 'END{abort "UNICODE version mismatch: #{mis}" unless mis.empty?}' \
-e '(mis.delete(ARGF.path); ARGF.close) if /ONIG_UNICODE_VERSION_STRING +"#{Regexp.quote(version)}"/o' \
10.0.0 ./enc/unicode/10.0.0/casefold.h ./enc/unicode/10.0.0/name2ctype.h
generating encdb.h
./miniruby -I./lib -I. -I.ext/common ./tool/generic_erb.rb -c -o encdb.h ./template/encdb.h.tmpl ./enc enc
generating prelude.c
./miniruby -I./lib -I. -I.ext/common ./tool/generic_erb.rb -I. -c -o prelude.c \
./template/prelude.c.tmpl ./prelude.rb ./gem_prelude.rb ./abrt_prelude.rb
*** stack smashing detected ***: <unknown> terminated
encdb.h updated
... snip ...
</code></pre>
<p>This might by Ruby or gcc issue. Not sure yet. However, there is already lengthy analysis available in Fedora's Bugzilla <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1545239" class="external">1</a>. Would be anybody able to help to resolve this issue?</p> Ruby master - Feature #12034 (Open): RegExp does not respect file encoding directivehttps://bugs.ruby-lang.org/issues/120342016-01-29T15:52:39Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<pre><code>$ cat regexp-encoding.rb
# -*- encoding: binary -*-
puts ''.encoding
puts //.encoding
$ ruby regexp-encoding.rb
ASCII-8BIT
US-ASCII
</code></pre>
<p>The RegExp should have ASCII-8BIT encoding IMO.</p>
<p>Actually there is something different how Ruby 2.3 behaves with regards to encoding, since I cannot compile raindrops gem with Ruby 2.3 anymore due to this test error:</p>
<pre><code> 1) Error:
TestLinux#test_unix_resolves_symlinks:
RegexpError: /.../n has a non escaped non ASCII character in non ASCII-8BIT script
/builddir/build/BUILD/rubygem-raindrops-0.13.0/usr/share/gems/gems/raindrops-0.13.0/lib/raindrops/linux.rb:57:in `unix_listener_stats'
/builddir/build/BUILD/rubygem-raindrops-0.13.0/usr/share/gems/gems/raindrops-0.13.0/test/test_linux.rb:97:in `test_unix_resolves_symlinks'
</code></pre>
<p>This is the line where it fails:</p>
<p><a href="http://bogomips.org/raindrops.git/tree/lib/raindrops/linux.rb#n57" class="external">http://bogomips.org/raindrops.git/tree/lib/raindrops/linux.rb#n57</a></p> Ruby master - Feature #8566 (Open): [PATCH] Allow to configure additional preludeshttps://bugs.ruby-lang.org/issues/85662013-06-24T20:37:18Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>Could you please accept the patch [1], which adds new '--with-prelude' configuration option. This configuration option allows to specify additional preludes and compile it into prelude.c, therefore execute the code on each start of Ruby.</p>
<p>= Rationale</p>
<p>In Fedora/RHEL/CentOS, there is ABRT tool [2], which allows to automatically report program failures. I developed abrt gem [3, 4], which adds support for catching of unhandled Ruby exceptions, this in turns help improve the quality of Fedora and software we ship.</p>
<p>Every Ruby programmer could require this gem and it would report the bugs, however, there is no way how to convince everybody, that they should use abrt gem. Therefore, it would make more sense, if the gem is automatically loaded by Ruby itself, when it is available on system. For that, I could patch Ruby, but I think somebody else could benefit from this feature as well, hence I am proposing this patch to upstream.</p>
<p>JFYI, Motohiro Kosaki once proposed to add ABRT support to Ruby [5], but I think it would be far better if Ruby knows nothing about ABRT by default and we could solve it on distribution level.</p>
<p>Thanks for considering.</p>
<p>[1] <a href="https://github.com/voxik/ruby/commit/efcca5238cf0804275e76d99a599190250d9dd0c" class="external">https://github.com/voxik/ruby/commit/efcca5238cf0804275e76d99a599190250d9dd0c</a><br>
[2] <a href="https://fedorahosted.org/abrt/" class="external">https://fedorahosted.org/abrt/</a><br>
[3] <a href="http://rubygems.org/gems/abrt" class="external">http://rubygems.org/gems/abrt</a><br>
[4] <a href="https://github.com/voxik/abrt-ruby" class="external">https://github.com/voxik/abrt-ruby</a><br>
[5] <a href="https://github.com/kosaki/ruby/commit/6283017dc2747f306808ce530292dc51273746ec" class="external">https://github.com/kosaki/ruby/commit/6283017dc2747f306808ce530292dc51273746ec</a></p> Ruby master - Feature #6946 (Open): FIPS support?https://bugs.ruby-lang.org/issues/69462012-08-28T21:31:30Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>=begin<br>
Hi, running the test suite on FIPS enabled system using</p>
<p>$ find test/ -type f -name test_*.rb -exec make test-all TESTS="-v '{}'" ;</p>
<p>command with patch from <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: [PATCH] Increase DH key size to fix test suite in FIPS mode (Closed)" href="https://bugs.ruby-lang.org/issues/6938">#6938</a> applied, it gives me a plenty of errors (see attached output.txt file). There are two kind of errors as far as I understand, some are more or less test suite errors (e.g. <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: [PATCH] Increase DH key size to fix test suite in FIPS mode (Closed)" href="https://bugs.ruby-lang.org/issues/6938">#6938</a>), which should be easy to fix, while some others (e.g. <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Feature: pstore in FIPS mode (Closed)" href="https://bugs.ruby-lang.org/issues/6943">#6943</a>) would need bigger changes.</p>
<p>Is there any chance that Ruby will provide better support for FIPS and there errors get fixed?<br>
=end</p> Ruby master - Feature #5617 (Assigned): Allow install RubyGems into dediceted directoryhttps://bugs.ruby-lang.org/issues/56172011-11-11T22:12:09Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>Hello,</p>
<p>I would like to propose my patch, which allows to optionally install RubyGems library into dedicated directory, out of the default Ruby directory structure. This should enable to easily share one RubyGems library by more Ruby implementations and avoids code duplication. I did this patch since Fedora prohibits duplication of system libraries [1], which would be the case if MRI and JRuby are installed in parallel.</p>
<p>Thank you for considering this patch.</p>
<p>Vit</p>
<p>[1] <a href="https://fedoraproject.org/wiki/Packaging:Guidelines#Duplication_of_system_libraries" class="external">https://fedoraproject.org/wiki/Packaging:Guidelines#Duplication_of_system_libraries</a></p>