Bug #16926

Kernel#require does not load a feature twice when $LOAD_PATH has been modified spec fails only on 2.7

Added by Eregon (Benoit Daloze) 6 months ago. Updated 6 months ago.

Target version:
ruby -v:
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]


This spec:

fails in 2.7.1, but not on Ruby <= 2.6 and not on master.

Could someone investigate why that is and if the change is on purpose or a bug?
It sounds like a bug, because changing the last be_false to be_true then passes for Kernel#require but fails for Kernel.require.

Reproduce with:

$ Use ruby 2.7.1
$ cd ruby/spec
# remove ruby_bug guard in core/kernel/require_spec.rb
$ mspec core/kernel/require_spec.rb

Updated by Eregon (Benoit Daloze) 6 months ago

  • Backport changed from 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN to 2.5: DONTNEED, 2.6: DONTNEED, 2.7: REQUIRED

Updated by jeremyevans0 (Jeremy Evans) 6 months ago

I bisected this, twice.

Updated by nagachika (Tomoyuki Chikanaga) 6 months ago

Thank you for the bisecting.
I think it's hard to backport whole 96064e6f1ce100a37680dc8f9509f06b3350e9c8. Reverting dd16f8524c44f8802e634af2577fe5a149cd740e may fix this issue. I wonder dd16f8524c44f8802e634af2577fe5a149cd740e was the fix for another issues or not.
hsbt san, do you have any idea?

Updated by vo.x (Vit Ondruch) 6 months ago

Just FTR, this seems to be related to #16904 and 1 in upstream, resolved by 2.

Updated by deivid (David Rodríguez) 6 months ago

Yes, I think ideally we should release rubygems 3.1.5 with the fix, and backport that to ruby 2.7.2. What do you think, hsbt san?

Updated by hsbt (Hiroshi SHIBATA) 6 months ago

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

Also available in: Atom PDF