Skip to content

sass-embedded gem extension install fails with rake require error on Windows with JRuby 9.4.2.0 #7717

@chadlwilson

Description

@chadlwilson

Environment Information

Provide at least:

  • JRuby version jruby 9.4.2.0 (3.1.0) 2023-03-08 90d2913fda OpenJDK 64-Bit Server VM 17.0.6+10-LTS on 17.0.6+10-LTS [aarch64-mswin32] (similar on [x86_64-mswin32])
  • Operating system and platform Windows 2022 Server Core/Windows 11

Other relevant info:

  • Default pre-packaged bundler 2.3.25
  • sass-embedded 1.58.3

Expected Behavior

Can install sass-embedded gem and run its "native extensions" install as before.

Actual Behavior

A gem install of sass-embedded on Windows seems to now fail with the below error. This is working on JRuby 9.4.1.0.

sass-embedded uses a "native extension" to dynamically download appropriate native sass binaries for Windows to run within JRuby via this Rakefile.

There seems to be some issue when requiring rake? I can't see obviously from https://www.jruby.org/2023/03/08/jruby-9-4-2-0.html what might have changed to cause this - there might be issue on our side of course.

[667346055, #<Thread:0x61a87366@main run>, #<LoadError: no such file to load --
rake>, ["org/jruby/RubyKernel.java:1057:in `require'",
"uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85:in
`require'",
"C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake:25:in
`<main>'"]]
[667346055, #<Thread:0x61a87366@main run>, #<RuntimeError: CRITICAL:
RUBYGEMS_ACTIVATION_MONITOR.owned?: before false -> after true>,

bundle install log (run via Jruby)

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/sass-embedded-1.58.3/ext/sass
C:/gocd/server/scripts/jruby.bat
-Iuri:classloader:/META-INF/jruby.home/lib/ruby/stdlib -rrubygems
C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake
RUBYARCHDIR\=C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/extensions/universal-java-17/3.1.0/sass-embedded-1.58.3
RUBYLIBDIR\=C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/extensions/universal-java-17/3.1.0/sass-embedded-1.58.3
[667346055, #<Thread:0x61a87366@main run>, #<LoadError: no such file to load --
rake>, ["org/jruby/RubyKernel.java:1057:in `require'",
"uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85:in
`require'",
"C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake:25:in
`<main>'"]]
[667346055, #<Thread:0x61a87366@main run>, #<RuntimeError: CRITICAL:
RUBYGEMS_ACTIVATION_MONITOR.owned?: before false -> after true>,
["uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:167:in
`require'",
"C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/lib/rake.rb:29:in
`<main>'", "org/jruby/RubyKernel.java:1057:in `require'",
"uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:160:in
`require'",
"C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake:25:in
`<main>'"]]
RuntimeError: CRITICAL: RUBYGEMS_ACTIVATION_MONITOR.owned?: before false ->
after true
require at
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:167
<main> at
C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake:25
RuntimeError: CRITICAL: RUBYGEMS_ACTIVATION_MONITOR.owned?: before false ->
after true
require at
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:167
<main> at
C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/lib/rake.rb:29
  require at org/jruby/RubyKernel.java:1057
require at
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:160
<main> at
C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake:25
LoadError: no such file to load -- rake
  require at org/jruby/RubyKernel.java:1057
require at
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85
<main> at
C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake:25

rake failed, exit code 1

Gem files will remain installed in
C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/sass-embedded-1.58.3
for inspection.
Results logged to
C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/extensions/universal-java-17/3.1.0/sass-embedded-1.58.3/gem_make.out

uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/ext/builder.rb:102:in
`run'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/ext/rake_builder.rb:28:in
`build'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/ext/builder.rb:171:in
`build_extension'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/ext/builder.rb:205:in
`block in build_extensions'
  org/jruby/RubyArray.java:1987:in `each'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/ext/builder.rb:202:in
`build_extensions'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/installer.rb:843:in
`build_extensions'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/rubygems_gem_installer.rb:72:in
`build_extensions'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/rubygems_gem_installer.rb:28:in
`install'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/source/rubygems.rb:207:in
`install'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/installer/gem_installer.rb:54:in
`install'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/installer/gem_installer.rb:16:in
`install_from_spec'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/installer/parallel_installer.rb:186:in
`do_install'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/installer/parallel_installer.rb:177:in
`block in worker_pool'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/worker.rb:62:in
`apply_func'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/worker.rb:57:in
`block in process_queue'
  org/jruby/RubyKernel.java:1586:in `loop'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/worker.rb:54:in
`process_queue'
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/worker.rb:91:in
`block in create_threads'

An error occurred while installing sass-embedded (1.58.3), and Bundler cannot
continue.

In Gemfile:
  sassc-embedded was resolved to 1.54.0, which depends on
    sass-embedded

gem_make.out log (similar to above)

current directory: C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/sass-embedded-1.58.3/ext/sass
C:/gocd/server/scripts/jruby.bat -Iuri:classloader:/META-INF/jruby.home/lib/ruby/stdlib -rrubygems C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake RUBYARCHDIR\=C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/extensions/universal-java-17/3.1.0/sass-embedded-1.58.3 RUBYLIBDIR\=C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/extensions/universal-java-17/3.1.0/sass-embedded-1.58.3
[667346055, #<Thread:0x61a87366@main run>, #<LoadError: no such file to load -- rake>, ["org/jruby/RubyKernel.java:1057:in `require'", "uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85:in `require'", "C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake:25:in `<main>'"]]
[667346055, #<Thread:0x61a87366@main run>, #<RuntimeError: CRITICAL: RUBYGEMS_ACTIVATION_MONITOR.owned?: before false -> after true>, ["uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:167:in `require'", "C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/lib/rake.rb:29:in `<main>'", "org/jruby/RubyKernel.java:1057:in `require'", "uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:160:in `require'", "C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake:25:in `<main>'"]]
RuntimeError: CRITICAL: RUBYGEMS_ACTIVATION_MONITOR.owned?: before false -> after true
  require at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:167
   <main> at C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake:25
RuntimeError: CRITICAL: RUBYGEMS_ACTIVATION_MONITOR.owned?: before false -> after true
  require at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:167
   <main> at C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/lib/rake.rb:29
  require at org/jruby/RubyKernel.java:1057
  require at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:160
   <main> at C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake:25
LoadError: no such file to load -- rake
  require at org/jruby/RubyKernel.java:1057
  require at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85
   <main> at C:/gocd/server/src/main/webapp/WEB-INF/rails/gems/jruby/3.1.0/gems/rake-13.0.6/exe/rake:25

rake failed, exit code 1

JRuby is being launched with the below as C:/gocd/server/scripts/jruby.bat (don't ask me about the history here 😅)

@echo off

set "GEM_HOME=C:\gocd\server\src\main\webapp\WEB-INF\rails\gems\jruby\3.1.0"
set "GEM_PATH=C:\gocd\server\src\main\webapp\WEB-INF\rails\gems\jruby\3.1.0"
set "RUBY=C:/gocd/server/scripts/jruby.bat"
rem add jruby and rubygem binstubs to PATH
set "PATH=C:\gocd\server\scripts;C:\gocd\server\src\main\webapp\WEB-INF\rails\gems\jruby\3.1.0\bin;%PATH%"

"C:\Program Files (Arm)\Microsoft\jdk-17.0.6.10-hotspot\bin\java.exe" ^
  "-XX:+TieredCompilation" ^
  "-XX:TieredStopAtLevel=1" ^
  "-Xss2048k" ^
  "-client" ^
  "--add-opens=java.base/sun.nio.ch=ALL-UNNAMED" ^
  "--add-opens=java.base/java.io=ALL-UNNAMED" ^
  "-Djruby.compile.mode=OFF" ^
  "-Djruby.compile.invokedynamic=false" ^
  "-Djruby.home=uri:classloader://META-INF/jruby.home" ^
  "-Djdk.net.URLClassPath.disableClassPathURLCheck=true" ^
  -cp ^
  "C:\Users\Chad Wilson\.gradle\caches\modules-2\files-2.1\org.jruby\jruby-complete\9.4.2.0\28ee1571fc1250938422eecf6a8f801a44906c7b\jruby-complete-9.4.2.0.jar;C:\gocd\server\target\libs\server-23.1.0-16074-pathing.jar" ^
  org.jruby.Main ^
  %*

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions