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

Possible incompatibility between jffi-1.2.7 and jruby 1.6.5 as shipped with ruby-runtime plugin

    Details

    • Similar Issues:

      Description

      After upgrading to Jenkins 1.518 (from 1.517) last night, the ruby-runtime plugin disappeared from the list of installed plugins. Attempting to reinstall the plugin fails, and results in a stack trace ending with:

      Caused by: org.jruby.embed.EvalFailedException: java.lang.IncompatibleClassChangeError: Found class com.kenai.jffi.InvocationBuffer, but interface was expected

      A little googling suggests that this is a backwards incompatibility between jruby and more recent versions jffi.

        Attachments

          Issue Links

            Activity

            Hide
            sbussetti steve bussetti added a comment -

            To further support this, rolling back to 1.517 completely resolves this issue. ruby-runtime re-appears in the list of installed apps, along with any plugins that depend on it.

            Show
            sbussetti steve bussetti added a comment - To further support this, rolling back to 1.517 completely resolves this issue. ruby-runtime re-appears in the list of installed apps, along with any plugins that depend on it.
            Hide
            bfulton Bright Fulton added a comment -

            Same experience as steve bussetti here. Upgrading to 1.518 causes the ruby-runtime plugin to fail during initialization with the following exception

            Jun 12, 2013 11:53:58 AM ruby.RubyRuntimePlugin start
            INFO: Injecting JRuby into XStream
            
            java.lang.IncompatibleClassChangeError: Found class com.kenai.jffi.InvocationBuffer, but interface was expected
            	at com.kenai.jaffl.provider.jffi.AsmRuntime.marshal(AsmRuntime.java:169)
            	at org.jruby.ext.posix.LinuxLibC$jaffl$0.setenv(Unknown Source)
            	at org.jruby.ext.posix.BaseNativePOSIX.setenv(BaseNativePOSIX.java:221)
            	at org.jruby.ext.posix.LazyPOSIX.setenv(LazyPOSIX.java:263)
            	at org.jruby.RubyGlobal$StringOnlyRubyHash.case_aware_op_aset(RubyGlobal.java:176)
            	at org.jruby.RubyGlobal$CaseInsensitiveStringOnlyRubyHash.op_aset(RubyGlobal.java:87)
            	at org.jruby.RubyHash$i$2$0$op_aset.call(RubyHash$i$2$0$op_aset.gen:65535)
            	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:332)
            	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:203)
            	at org.jruby.ast.AttrAssignTwoArgNode.interpret(AttrAssignTwoArgNode.java:42)
            	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
            	at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
            	at org.jruby.ast.RootNode.interpret(RootNode.java:129)
            	at org.jruby.evaluator.ASTInterpreter.INTERPRET_ROOT(ASTInterpreter.java:120)
            	at org.jruby.Ruby.runInterpreter(Ruby.java:720)
            	at org.jruby.Ruby.runInterpreter(Ruby.java:728)
            	at org.jruby.embed.internal.EmbedEvalUnitImpl.run(EmbedEvalUnitImpl.java:119)
            	at org.jruby.embed.ScriptingContainer.runUnit(ScriptingContainer.java:1231)
            	at org.jruby.embed.ScriptingContainer.runScriptlet(ScriptingContainer.java:1224)
            	at org.kohsuke.stapler.jelly.jruby.haml.HamlLanguage.createContainer(HamlLanguage.java:28)
            	at org.kohsuke.stapler.jelly.jruby.JRubyFacet.<init>(JRubyFacet.java:71)
            	at ruby.RubyRuntimePlugin.registerJRubyFacet(RubyRuntimePlugin.java:39)
            	at ruby.RubyRuntimePlugin.start(RubyRuntimePlugin.java:30)
            	at hudson.ClassicPluginStrategy.startPlugin(ClassicPluginStrategy.java:379)
            	at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:368)
            	at hudson.PluginManager$2$1$1.run(PluginManager.java:334)
            	at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
            	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
            	at jenkins.model.Jenkins$7.runTask(Jenkins.java:893)
            	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
            	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
            	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
            	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
            	at java.lang.Thread.run(Thread.java:679)
            

            This causes dependent plugins to also fail and build configs which reference them to not load. Downgrading to 1.517 fixes.

            Show
            bfulton Bright Fulton added a comment - Same experience as steve bussetti here. Upgrading to 1.518 causes the ruby-runtime plugin to fail during initialization with the following exception Jun 12, 2013 11:53:58 AM ruby.RubyRuntimePlugin start INFO: Injecting JRuby into XStream java.lang.IncompatibleClassChangeError: Found class com.kenai.jffi.InvocationBuffer, but interface was expected at com.kenai.jaffl.provider.jffi.AsmRuntime.marshal(AsmRuntime.java:169) at org.jruby.ext.posix.LinuxLibC$jaffl$0.setenv(Unknown Source) at org.jruby.ext.posix.BaseNativePOSIX.setenv(BaseNativePOSIX.java:221) at org.jruby.ext.posix.LazyPOSIX.setenv(LazyPOSIX.java:263) at org.jruby.RubyGlobal$StringOnlyRubyHash.case_aware_op_aset(RubyGlobal.java:176) at org.jruby.RubyGlobal$CaseInsensitiveStringOnlyRubyHash.op_aset(RubyGlobal.java:87) at org.jruby.RubyHash$i$2$0$op_aset.call(RubyHash$i$2$0$op_aset.gen:65535) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:332) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:203) at org.jruby.ast.AttrAssignTwoArgNode.interpret(AttrAssignTwoArgNode.java:42) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) at org.jruby.ast.RootNode.interpret(RootNode.java:129) at org.jruby.evaluator.ASTInterpreter.INTERPRET_ROOT(ASTInterpreter.java:120) at org.jruby.Ruby.runInterpreter(Ruby.java:720) at org.jruby.Ruby.runInterpreter(Ruby.java:728) at org.jruby.embed.internal.EmbedEvalUnitImpl.run(EmbedEvalUnitImpl.java:119) at org.jruby.embed.ScriptingContainer.runUnit(ScriptingContainer.java:1231) at org.jruby.embed.ScriptingContainer.runScriptlet(ScriptingContainer.java:1224) at org.kohsuke.stapler.jelly.jruby.haml.HamlLanguage.createContainer(HamlLanguage.java:28) at org.kohsuke.stapler.jelly.jruby.JRubyFacet.<init>(JRubyFacet.java:71) at ruby.RubyRuntimePlugin.registerJRubyFacet(RubyRuntimePlugin.java:39) at ruby.RubyRuntimePlugin.start(RubyRuntimePlugin.java:30) at hudson.ClassicPluginStrategy.startPlugin(ClassicPluginStrategy.java:379) at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:368) at hudson.PluginManager$2$1$1.run(PluginManager.java:334) at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259) at jenkins.model.Jenkins$7.runTask(Jenkins.java:893) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang. Thread .run( Thread .java:679) This causes dependent plugins to also fail and build configs which reference them to not load. Downgrading to 1.517 fixes.
            Hide
            yyuu Yuu Yamashita added a comment -

            Close this issue since JENKINS-18311 has been fixed.

            Show
            yyuu Yuu Yamashita added a comment - Close this issue since JENKINS-18311 has been fixed.
            Hide
            yyuu Yuu Yamashita added a comment -

            This problem has been fixed in ruby-runtime 0.11.

            Show
            yyuu Yuu Yamashita added a comment - This problem has been fixed in ruby-runtime 0.11.

              People

              • Assignee:
                jorgenpt Jørgen Tjernø
                Reporter:
                sbussetti steve bussetti
              • Votes:
                5 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: