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

Parameterized Remote Trigger is not compatible with Jenkins 2.102+ due to JEP-200 changes

    Details

    • Similar Issues:

      Description

      When calling the org.jenkinsci.plugins.ParameterizedRemoteTrigger.pipeline.RemoteBuildPipelineStep using Jenkins 2.150.2, we get the following stack trace:

      an exception which occurred:an exception which occurred: in field org.jenkinsci.plugins.ParameterizedRemoteTrigger.pipeline.RemoteBuildPipelineStep$Execution.remoteBuildConfig in object org.jenkinsci.plugins.ParameterizedRemoteTrigger.pipeline.RemoteBuildPipelineStep$Execution@14b8f445 in field org.jenkinsci.plugins.workflow.cps.CpsThread.step in object org.jenkinsci.plugins.workflow.cps.CpsThread@3350481e in field org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.threads in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@2e15e1a9 in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@2e15e1a9Caused: java.lang.UnsupportedOperationException: Refusing to marshal java.util.concurrent.Semaphore for security reasons; see https://jenkins.io/redirect/class-filter/ at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:546) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64) at com.thoughtworks.xstream.converters.collections.MapConverter.marshal(MapConverter.java:79) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84) at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:265) at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:252)Caused: java.lang.RuntimeException: Failed to serialize org.jenkinsci.plugins.ParameterizedRemoteTrigger.RemoteBuildConfiguration#hostLocks for class org.jenkinsci.plugins.ParameterizedRemoteTrigger.RemoteBuildConfiguration at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:256) at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:224) at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138) at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:209) at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:150) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43) at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82) at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37) at com.thoughtworks.xstream.XStream.marshal(XStream.java:1026) at com.thoughtworks.xstream.XStream.marshal(XStream.java:1015) at com.thoughtworks.xstream.XStream.toXML(XStream.java:988) at com.thoughtworks.xstream.XStream.toXML(XStream.java:975) at org.jenkinsci.plugins.workflow.support.pickles.XStreamPickle.<init>(XStreamPickle.java:46) at com.cloudbees.workflow.template.DescribablePickleFactory.pickle(DescribablePickleFactory.java:18) at com.cloudbees.workflow.template.DescribablePickleFactory.pickle(DescribablePickleFactory.java:15) at org.jenkinsci.plugins.workflow.support.pickles.SingleTypedPickleFactory.writeReplace(SingleTypedPickleFactory.java:49) at org.jenkinsci.plugins.workflow.support.pickles.serialization.RiverWriter$1.writeReplace(RiverWriter.java:125) at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:187) at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032) at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988) at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854) at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032) at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988) at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854) at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65) at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56) at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50) at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344) at java.util.TreeMap.writeObject(TreeMap.java:2438) at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:273) at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:976) at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854) at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032) at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988) at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854) at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58) at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111) at org.jenkinsci.plugins.workflow.support.pickles.serialization.RiverWriter.lambda$writeObject$0(RiverWriter.java:144) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:121) at org.jenkinsci.plugins.workflow.support.pickles.serialization.RiverWriter.writeObject(RiverWriter.java:143) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram(CpsThreadGroup.java:482) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram(CpsThreadGroup.java:458) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgramIfPossible(CpsThreadGroup.java:445) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:372) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:83) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:244) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:232) at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131) at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

      This seems to indicate that the plugin needs to be updated to address JEP-200: https://jenkins.io/blog/2018/01/13/jep-200/

      Also attaching the stack trace, because I can't get Jira to format it in any sane way.

        Attachments

          Activity

          Hide
          yixiaol Yixiao Lin added a comment -

          We experience the same issue. Would be great if this is fixed. 

          Show
          yixiaol Yixiao Lin added a comment - We experience the same issue. Would be great if this is fixed. 
          Hide
          raihaan Raihaan Shouhell added a comment -
          Show
          raihaan Raihaan Shouhell added a comment - Owen Mehegan could you try the build that comes out of    https://github.com/jenkinsci/parameterized-remote-trigger-plugin/pull/59
          Hide
          halkeye Gavin Mogan added a comment -

          Owen Mehegan or others

          do you have the actual reproduction steps? the tests arn't failing at any version.

          Show
          halkeye Gavin Mogan added a comment - Owen Mehegan or others do you have the actual reproduction steps? the tests arn't failing at any version.
          Hide
          halkeye Gavin Mogan added a comment -

          Oh totally missed the comment saying its potentially fixed <_<

          I'll see if we can reproduce the original case on our jenkins

          Show
          halkeye Gavin Mogan added a comment - Oh totally missed the comment saying its potentially fixed <_< I'll see if we can reproduce the original case on our jenkins
          Hide
          raihaan Raihaan Shouhell added a comment -

          Tbh I cant consistently reproduce this. Occasionally this fails due to attempting to serialize a semaphore.

          Show
          raihaan Raihaan Shouhell added a comment - Tbh I cant consistently reproduce this. Occasionally this fails due to attempting to serialize a semaphore.
          Hide
          cashlalala KaiHsiang Chang added a comment -

          Already merged the patch, but still need Gavin Mogan to test.

          Show
          cashlalala KaiHsiang Chang added a comment - Already merged the patch, but still need Gavin Mogan to test.
          Hide
          mjdean1994 Matthew Dean added a comment -

          KaiHsiang Chang has this fix been released? This is a blocker for my team currently.

          Show
          mjdean1994 Matthew Dean added a comment - KaiHsiang Chang has this fix been released? This is a blocker for my team currently.
          Hide
          steti Steve Teti added a comment -

          I can confirm that the latest master (83a8c0a) fixed this issue for me.

          Show
          steti Steve Teti added a comment - I can confirm that the latest master (83a8c0a) fixed this issue for me.

            People

            • Assignee:
              cashlalala KaiHsiang Chang
              Reporter:
              owenmehegan Owen Mehegan
            • Votes:
              4 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

              • Created:
                Updated: