Project

General

Profile

Actions

Bug #20450

closed

Ruby 3.3.1 broken with bootsnap

Added by philippe.bs.noel@tutanota.com (Philippe Noel) 2 months ago. Updated 30 days ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 3.3.1 (2024-04-23 revision c56cd86388) [x86_64-linux]
[ruby-core:117674]

Description

The issue looks like https://bugs.ruby-lang.org/issues/20060

With the new release of ruby 3.1.1, bootsnap does not work anymore.

bin/rails aborted!
ArgumentError: comparison of String with nil failed (ArgumentError)

    msg = " #{RUBY_VERSION < SINCE[gem] ? "will no longer be" : "is not"} part of the default gems since Ruby #{SINCE[gem]}."
                             ^^^^^^^^^^
/usr/local/bundle/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'

It's working with DISABLE_BOOTSNAP=1 with the following message : warning: parser/current is loading parser/ruby33, which recognizes 3.3.0-compliant syntax, but you are running 3.3.1.

Updated by hsbt (Hiroshi SHIBATA) 2 months ago

  • Status changed from Open to Assigned
  • Assignee set to hsbt (Hiroshi SHIBATA)

Can you provide your Gemfile? I did confirm to work that with bootsnap and zeitwerk at https://github.com/ruby/ruby/pull/10347#issuecomment-2017204802

Updated by philippe.bs.noel@tutanota.com (Philippe Noel) 2 months ago

hsbt (Hiroshi SHIBATA) wrote in #note-1:

Can you provide your Gemfile? I did confirm to work that with bootsnap and zeitwerk at https://github.com/ruby/ruby/pull/10347#issuecomment-2017204802

$ cat Gemfile
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 7.1.0'
gem 'bootsnap', require: false

gem 'winrm'
Actions #4

Updated by hsbt (Hiroshi SHIBATA) 2 months ago

  • Subject changed from Ruby 3.1.1 broken with bootsnap to Ruby 3.3.1 broken with bootsnap

Updated by professor (Todd Sedano) 2 months ago

Thank you for fixing this. I confirmed that making this change fixed Ruby 3.3.1 for gusto

Updated by shan (Shannon Skipper) 2 months ago ยท Edited

For what it's worth, here are some untested install scripts using a minimalist version of @eugeneius's patch for ruby-install, RVM, rbenv and asdf.

ruby-install --patch https://gist.githubusercontent.com/havenwood/57ef01e562bc5ac2939477cc842cc9ad/raw/57ef01e562bc5ac2939477cc842cc9ad/raw/0509f4df6d7e8e5e4a16eae2ef43f903b2b265d6/delete_archdir_prefix.patch ruby-3.3.1
rvm install 3.3.1 --patch https://gist.githubusercontent.com/havenwood/57ef01e562bc5ac2939477cc842cc9ad/raw/57ef01e562bc5ac2939477cc842cc9ad/raw/0509f4df6d7e8e5e4a16eae2ef43f903b2b265d6/delete_archdir_prefix.patch
rbenv install --patch 3.3.1 < <(curl -s https://gist.githubusercontent.com/havenwood/57ef01e562bc5ac2939477cc842cc9ad/raw/0509f4df6d7e8e5e4a16eae2ef43f903b2b265d6/delete_archdir_prefix.patch)
RUBY_APPLY_PATCHES=$(curl -s https://gist.githubusercontent.com/havenwood/57ef01e562bc5ac2939477cc842cc9ad/raw/0509f4df6d7e8e5e4a16eae2ef43f903b2b265d6/delete_archdir_prefix.patch) asdf install ruby 3.3.1
Actions #7

Updated by hsbt (Hiroshi SHIBATA) 2 months ago

  • Backport changed from 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: REQUIRED
Actions #8

Updated by eugeneius (Eugene Kenny) 2 months ago

  • Status changed from Assigned to Closed

Applied in changeset git|67dd9af17e5c6c541a8cc84b1741deaf175fcf83.


[Bug #20450] Remove rubyarchdir from bootsnap paths

Updated by hsbt (Hiroshi SHIBATA) 2 months ago

Thanks all. I added https://github.com/ruby/ruby/pull/10619 to backport PR.

Sorry to your inconvenient experience for new stable version. https://bugs.ruby-lang.org/issues/20450#note-6 or https://github.com/ruby/ruby/pull/10619#issuecomment-2075896240 are good to temporary workaround for this issue until 3.3.2 release.

Updated by shan (Shannon Skipper) 2 months ago

RVM is now patching this by default for 3.3.1 installs. https://github.com/rvm/rvm/pull/5457

Updated by k0kubun (Takashi Kokubun) about 1 month ago

  • Backport changed from 3.1: DONTNEED, 3.2: DONTNEED, 3.3: REQUIRED to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONE

I backported this to ruby_3_3 at 6edd65a080b.

Updated by k0kubun (Takashi Kokubun) about 1 month ago

Ruby 3.3.2 has been released. It should have no issue with bootsnap.

Updated by jaruga (Jun Aruga) 30 days ago

Is this issue Ruby 3.3.1 specific or also happens in Ruby 3.3.0 too?

The issue looks like https://bugs.ruby-lang.org/issues/20060

The reporter mentioned the issue looked like #20060 introduced in Ruby 3.3.0-rc1. However, when I checked the ruby/ruby ruby_3_3 branch, the fixed commit https://github.com/ruby/ruby/commit/6edd65a080b156f1ce78fdcf57214c1644a049db for the lib/bundled_gems.rb is included in Ruby 3.3.2, and the commit https://github.com/ruby/ruby/commit/2f654588d9e0cefff1c23529d2f2672029e1bd21 including the line in the lib/bundled_gems.rb changed in the later commit 6edd65a080b156f1ce78fdcf57214c1644a049db was introduced in Ruby 3.3.1 first.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like2Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0