From a47c54131d25350341fb4ed52eab16ed478be1ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Tue, 14 Mar 2023 16:10:38 +0100 Subject: [PATCH] [rubygems/rubygems] Remove ensure part in require I've seen this error sometimes but never found it helpful, since the culprit has never been thread/monitor related, so it just adds noise. Right now I'm seeing an issue in CI where we seem to be crashing during ensure and showing a weird backtrace: ``` # terminated with exception (report_on_exception is true): /home/runner/work/rubygems/rubygems/lib/rubygems/platform.rb:141:in `==': undefined local variable or method `to_a' for false:FalseClass (NameError) Did you mean? to_s from /home/runner/work/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:168:in `!=' from /home/runner/work/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:168:in `require' from /home/runner/work/rubygems/rubygems/lib/rubygems.rb:441:in `block in ensure_subdirectories' from /home/runner/work/rubygems/rubygems/lib/rubygems.rb:437:in `each' from /home/runner/work/rubygems/rubygems/lib/rubygems.rb:437:in `ensure_subdirectories' from /home/runner/work/rubygems/rubygems/lib/rubygems.rb:413:in `ensure_gem_subdirectories' from /home/runner/work/rubygems/rubygems/lib/rubygems/resolver/specification.rb:110:in `download' from /home/runner/work/rubygems/rubygems/lib/rubygems/request_set.rb:173:in `block (2 levels) in install' ``` Let's get this out of the picture in case that helps clarify the culprit. https://github.com/rubygems/rubygems/commit/87ce40b70e --- lib/rubygems/core_ext/kernel_require.rb | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/lib/rubygems/core_ext/kernel_require.rb b/lib/rubygems/core_ext/kernel_require.rb index 6dcc4a06e4..568ac347b4 100644 --- a/lib/rubygems/core_ext/kernel_require.rb +++ b/lib/rubygems/core_ext/kernel_require.rb @@ -37,9 +37,6 @@ module Kernel return gem_original_require(path) unless Gem.discover_gems_on_require begin - if RUBYGEMS_ACTIVATION_MONITOR.respond_to?(:mon_owned?) - monitor_owned = RUBYGEMS_ACTIVATION_MONITOR.mon_owned? - end RUBYGEMS_ACTIVATION_MONITOR.enter path = path.to_path if path.respond_to? :to_path @@ -163,13 +160,6 @@ module Kernel end raise load_error - ensure - if RUBYGEMS_ACTIVATION_MONITOR.respond_to?(:mon_owned?) - if monitor_owned != (ow = RUBYGEMS_ACTIVATION_MONITOR.mon_owned?) - STDERR.puts [$$, Thread.current, $!, $!.backtrace].inspect if $! - raise "CRITICAL: RUBYGEMS_ACTIVATION_MONITOR.owned?: before #{monitor_owned} -> after #{ow}" - end - end end end