AWS Device Farm plugin affected by JEP-200:

       

      When using the AWS Device Farm plugin, the following is generate in Jenkins logs:

      Mar 29, 2018 2:20:01 PM SEVERE hudson.model.Run execute
      Failed to save build record
      java.lang.UnsupportedOperationException: Refusing to marshal java.io.PrintStream for security reasons; see https://jenkins.io/redirect/class-filter/
      at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:543)
      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.awsdevicefarm.AWSDeviceFarmTestResultAction#log for class org.jenkinsci.plugins.awsdevicefarm.AWSDeviceFarmTestResultAction
      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.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88)
      at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
      at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:74)
      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 hudson.model.Actionable#actions for class hudson.model.FreeStyleBuild
      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 hudson.XmlFile.write(XmlFile.java:193)
      Caused: java.io.IOException
      at hudson.XmlFile.write(XmlFile.java:200)
      at hudson.model.Run.save(Run.java:1923)
      at hudson.model.Run.execute(Run.java:1784)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      at hudson.model.ResourceController.execute(ResourceController.java:97)
      at hudson.model.Executor.run(Executor.java:429)

          [JENKINS-50483] AWS Device Farm plugin affected by JEP-200

          Dustin Kerber created issue -

          Oleg Nenashev added a comment -

          This is a valid bug afaict. There is no reason to serialize PrintStream to the disk. Likely build logger is persisted improperly.

          Oleg Nenashev added a comment - This is a valid bug afaict. There is no reason to serialize PrintStream to the disk. Likely build logger is persisted improperly.
          Oleg Nenashev made changes -
          Assignee Original: Chandra Bommas [ chabom ] New: Oleg Nenashev [ oleg_nenashev ]
          Oleg Nenashev made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]

          Oleg Nenashev added a comment -

          The plugin stores Build logs on the project level. Such approach is clearly a bug, it may cause collisions between jobs running in parallel

          Oleg Nenashev added a comment - The plugin stores Build logs on the project level. Such approach is clearly a bug, it may cause collisions between jobs running in parallel
          Oleg Nenashev made changes -
          Status Original: In Progress [ 3 ] New: In Review [ 10005 ]
          Oleg Nenashev made changes -
          Remote Link New: This issue links to "https://github.com/jenkinsci/aws-device-farm-plugin/pull/3 (Web Link)" [ 20353 ]

          Oleg Nenashev added a comment -

          I have created https://github.com/jenkinsci/aws-device-farm-plugin/pull/3 with a patch. kerber would you be able to try the build from CI and report testing results? I have no proper test environment, so I cannot guarantee the patch solves all JEP-200 issues in the plugin

          Oleg Nenashev added a comment - I have created https://github.com/jenkinsci/aws-device-farm-plugin/pull/3 with a patch. kerber would you be able to try the build from CI and report testing results? I have no proper test environment, so I cannot guarantee the patch solves all JEP-200 issues in the plugin

          Dustin Kerber added a comment -

          I can test it out. oleg_nenashev, do you have a link to where I can find the plugin artifact for testing, or will I need to build it from your repo branch?

          Dustin Kerber added a comment - I can test it out. oleg_nenashev , do you have a link to where I can find the plugin artifact for testing, or will I need to build it from your repo branch?

          Oleg Nenashev added a comment -

          Oleg Nenashev added a comment - kerber You can download it from here: https://ci.jenkins.io/job/Plugins/job/aws-device-farm-plugin/job/PR-3/1/artifact/target/aws-device-farm.hpi

            oleg_nenashev Oleg Nenashev
            kerber Dustin Kerber
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: