Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-48116

Jenkins 2.91 breaks builds which require Ruby

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Component/s: core, ruby-runtime-plugin
    • Labels:
    • Environment:
      Jenkins 2.91, ruby-runtime 0.12, Rvm 0.6, rbenv plugin 0.0.17, Linux HOSTNAME 4.4.0-57-generic #78-Ubuntu SMP Fri Dec 9 23:50:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
    • Similar Issues:

      Description

      After updating from 2.90 to 2.91 we are experiencing the following issue on Jobs which require either rbenv or rvm:

      As soon as enabling rvm and setting it to Ruby 2.3.1 we get the following error in the console log

      FATAL: (NoMethodError) undefined method `<<' for #<Jenkins::Plugin::OpaqueJavaObject:0x27ac28ca>
       org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `<<' for #<Jenkins::Plugin::OpaqueJavaObject:0x27ac28ca>
       at RUBY.setup(/virtual/jenkins/plugins/rvm/WEB-INF/classes/models/rvm_wrapper.rb:33)
       at RUBY.setUp(/virtual/jenkins/plugins/rvm/WEB-INF/classes/vendor/gems/bundler/../gems/jenkins-plugin-runtime-0.2.3/lib/jenkins/model/environment_proxy.rb:8)

      With ebenv we get a very similar issue:

      FATAL: (NoMethodError) undefined method `<<' for #<Jenkins::Plugin::OpaqueJavaObject:0x15176737>
      org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `<<' for #<Jenkins::Plugin::OpaqueJavaObject:0x15176737>
      	at RUBY.install!(/virtual/jenkins/plugins/rbenv/WEB-INF/classes/lib/rbenv.rb:46)
      	at RUBY.setup!(/virtual/jenkins/plugins/rbenv/WEB-INF/classes/lib/rbenv.rb:20)
      	at RUBY.setup(/virtual/jenkins/plugins/rbenv/WEB-INF/classes/models/rbenv_wrapper.rb:65)
      	at RUBY.setUp(/virtual/jenkins/plugins/rbenv/WEB-INF/classes/vendor/gems/bundler/../gems/jenkins-plugin-runtime-0.2.3/lib/jenkins/model/environment_proxy.rb:8)

       
      Current workaround is to downgrade to 2.90, which obviously is not a good solution.

        Attachments

          Issue Links

            Activity

            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Oleg Nenashev
            Path:
            core/src/main/java/hudson/util/AbstractTaskListener.java
            core/src/main/java/hudson/util/LogTaskListener.java
            core/src/main/java/hudson/util/StreamTaskListener.java
            http://jenkins-ci.org/commit/jenkins/f33506f4f6b428a49aeef4574df00ce483a65257
            Log:
            Merge pull request #3154 from oleg-nenashev/bug/JENKINS-48116

            JENKINS-48116 - Restore AbstractTaskListener binary compatibility in the core.

            Compare: https://github.com/jenkinsci/jenkins/compare/b431eb422a8f...f33506f4f6b4

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Oleg Nenashev Path: core/src/main/java/hudson/util/AbstractTaskListener.java core/src/main/java/hudson/util/LogTaskListener.java core/src/main/java/hudson/util/StreamTaskListener.java http://jenkins-ci.org/commit/jenkins/f33506f4f6b428a49aeef4574df00ce483a65257 Log: Merge pull request #3154 from oleg-nenashev/bug/ JENKINS-48116 JENKINS-48116 - Restore AbstractTaskListener binary compatibility in the core. Compare: https://github.com/jenkinsci/jenkins/compare/b431eb422a8f...f33506f4f6b4
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            The fix has been integrated towards 2.92

            Show
            oleg_nenashev Oleg Nenashev added a comment - The fix has been integrated towards 2.92
            Hide
            danielbeck Daniel Beck added a comment -

            Oleg Nenashev Do we need separate issues for plugins to migrate off this ticking time bomb? We can't let core be shackled to faulty assumptions from 5 years ago.

            Show
            danielbeck Daniel Beck added a comment - Oleg Nenashev Do we need separate issues for plugins to migrate off this ticking time bomb? We can't let core be shackled to faulty assumptions from 5 years ago.
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Daniel Beck I think we "just" need an EPIC for creating "ruby-runtime-api" plugin and then migrating the dependent plugins. And yeah, we need a hero who is ready to work on it.

            Show
            oleg_nenashev Oleg Nenashev added a comment - Daniel Beck I think we "just" need an EPIC for creating "ruby-runtime-api" plugin and then migrating the dependent plugins. And yeah, we need a hero who is ready to work on it.
            Hide
            martinkim Martin Kim Dung-Pham added a comment -

            Oleg Nenashev @all thanks for your efforts on this, very much appreciated!

            Show
            martinkim Martin Kim Dung-Pham added a comment - Oleg Nenashev @all thanks for your efforts on this, very much appreciated!

              People

              • Assignee:
                oleg_nenashev Oleg Nenashev
                Reporter:
                martinkim Martin Kim Dung-Pham
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: