-
Bug
-
Resolution: Unresolved
-
Critical
Running Jenkins 2.319.2 with Performance Plugin 3.20. Sporadically I am still getting the JEP-200 related security exception:
java.lang.UnsupportedOperationException: Refusing to marshal java.text.SimpleDateFormat for security reasons; see https://www.jenkins.io/redirect/class-filter/ at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:559) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:83) at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:278) at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:265) Caused: java.lang.RuntimeException: Failed to serialize hudson.plugins.performance.parsers.AbstractParser#format for class hudson.plugins.performance.parsers.JMeterCsvParser at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:269) at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:236) at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:174) at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:221) at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:160) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68) 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:87) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeBareItem(AbstractCollectionConverter.java:94) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:66) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeCompleteItem(AbstractCollectionConverter.java:81) at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:74) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:83) at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:278) at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:265) Caused: java.lang.RuntimeException: Failed to serialize hudson.plugins.performance.actions.PerformanceBuildAction#parsers for class hudson.plugins.performance.actions.PerformanceBuildAction at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:269) at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:236) at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:174) at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:221) at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:160) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68) 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:87) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeBareItem(AbstractCollectionConverter.java:94) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:66) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeCompleteItem(AbstractCollectionConverter.java:81) at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:74) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:83) at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:278) at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:265) Caused: java.lang.RuntimeException: Failed to serialize hudson.model.Actionable#actions for class org.jenkinsci.plugins.workflow.job.WorkflowRun at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:269) at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:236) at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:174) at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:221) at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:160) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68) 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:1243) at com.thoughtworks.xstream.XStream.marshal(XStream.java:1232) at com.thoughtworks.xstream.XStream.toXML(XStream.java:1205) at hudson.util.XStream2.toXMLUTF8(XStream2.java:325) at org.jenkinsci.plugins.workflow.support.PipelineIOUtils.writeByXStream(PipelineIOUtils.java:34) at org.jenkinsci.plugins.workflow.job.WorkflowRun.save(WorkflowRun.java:1218) at hudson.BulkChange.commit(BulkChange.java:97) at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1485) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:491) at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:38) at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139) at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68) 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) Finished: FAILURE
when running pipeline command
perfReport sourceDataFiles: 'testautomation/*/reports/*.jtl', compareBuildPrevious: true, failBuildIfNoResultFile: false, ignoreFailedBuilds: false, errorFailedThreshold: 1
It does not happen with every build. I haven't figured out yet why that actually is. In general, however, there still seems to be an issue here. Unfortunately, this breaks my builds and causes issues in daily operations.
Interestingly, commit
https://github.com/jenkinsci/performance-plugin/commit/9b38268c10c1642c753e7a9a2b3216e4336db496
was suposed to fix this bug by introducing the "transient" field for date format. After a while this commit removed the transient field again:
https://github.com/jenkinsci/performance-plugin/commit/e77ea040d7f172a2b8ff56ac2b1c5a8828536941
So, which one is correct?