jenkinsci / allure-plugin

Allure Jenkins Plugin
https://plugins.jenkins.io/allure-jenkins-plugin/
Other
84 stars 65 forks source link

Can't send a remote FilePath to a different remote channel #180

Closed Stupnikov-NA closed 6 years ago

Stupnikov-NA commented 6 years ago

Issue

Context

Problem description

We've noticed random failures after upgrade plugin to version 2.25 from 2.24. The problem is being reproduced on Jenkins Maven projects and it seems it doesn't depend on agents configuration. With the same agent and same project configuration we can get several failed builds in a raw and several builds without any problems after that.

Logs & Traces

[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[ERROR] Internal error: java.lang.RuntimeException: Failed to serialize hudson.model.Actionable#actions for class hudson.maven.MavenModuleSetBuild: Failed to serialize hudson.maven.MavenProbeAction#owner for class hudson.maven.MavenProbeAction: Failed to serialize hudson.maven.MavenModuleSet#publishers for class hudson.maven.MavenModuleSet: Failed to serialize ru.yandex.qatools.allure.jenkins.AllureReportPublisher#reportPath for class ru.yandex.qatools.allure.jenkins.AllureReportPublisher: Could not call hudson.FilePath.writeObject() : Can't send a remote FilePath to a different remote channel
[ERROR] ---- Debugging information ----
[ERROR] message             : Could not call hudson.FilePath.writeObject()
[ERROR] cause-exception     : java.lang.IllegalStateException
[ERROR] cause-message       : Can't send a remote FilePath to a different remote channel
[ERROR] -------------------------------

More logs

Stupnikov-NA commented 6 years ago

In case of problem I see the following state during execution of FilePath.java:2701

target =  hudson.remoting.Channel@44dcd735:Channel to Maven [java, -cp, /u01/jenkins_slave/maven3-agent.jar:/u01/jenkins_slave/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.0.5/apache-maven-3.0.5/boot/plexus-classworlds-2.4.jar, org.jvnet.hudson.maven3.agent.Maven3Main, /u01/jenkins_slave/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.0.5/apache-maven-3.0.5, /u01/jenkins_slave/slave.jar, /u01/jenkins_slave/maven3-interceptor.jar, /u01/jenkins_slave/maven3-interceptor-commons.jar, 34514]

channel = hudson.remoting.Channel@6302eb34:test-jenkins-agent-linux-001.somedomain.com

Hope this information can help.

vbragin commented 6 years ago

@Stupnikov-NA Could you please try to use new plugin version: 2.25.1 and write about the results. Looks like the problem was fixed there.

vbragin commented 6 years ago

@Stupnikov-NA Feel free to reopen the issue if this problem still exists.

rufatnadir commented 6 years ago

Seeing this error on latest version of allure-plugin

java.io.IOException: Can't find allure commandline <null>
    at ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation$2.call(AllureCommandlineInstallation.java:63)
    at ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation$2.call(AllureCommandlineInstallation.java:58)
    at hudson.remoting.UserRequest.perform(UserRequest.java:153)
    at hudson.remoting.UserRequest.perform(UserRequest.java:50)
    at hudson.remoting.Request$2.run(Request.java:336)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
    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)
    at ......remote call to rtp-waql-bld1.cisco.com(Native Method)
    at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1545)
    at hudson.remoting.UserResponse.retrieve(UserRequest.java:253)
    at hudson.remoting.Channel.call(Channel.java:830)
    at ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation.getMajorVersion(AllureCommandlineInstallation.java:58)
    at ru.yandex.qatools.allure.jenkins.ReportBuilder.build(ReportBuilder.java:44)
    at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.generateReport(AllureReportPublisher.java:298)
    at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.perform(AllureReportPublisher.java:223)
    at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:78)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:720)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1067)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:665)
    at hudson.model.Run.execute(Run.java:1753)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:544)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:405)`

`ERROR: Build step failed with exception
java.lang.IllegalStateException: Can't send a remote FilePath to a different remote channel
    at hudson.FilePath.writeObject(FilePath.java:2682)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callWriteObject(SerializationMethodInvoker.java:135)
Caused: com.thoughtworks.xstream.converters.ConversionException: Could not call hudson.FilePath.writeObject() : Can't send a remote FilePath to a different remote channel
---- Debugging information ----
message             : Could not call hudson.FilePath.writeObject()
cause-exception     : java.lang.IllegalStateException
cause-message       : Can't send a remote FilePath to a different remote channel
-------------------------------

Jenkins version: CloudBees Jenkins Enterprise 2.46.3.2-rolling Maven version: 3.2.3 Allure Jenkins Plugin version: 2.25