• Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • clover-plugin
    • None
    • clover plugin 4.6
      jenkins 1.648

      I am seeing a new IOException since upgrading to v4.60 of the clover plugin in a job running on a linux ec2 slave

      Archiving artifacts
      Publishing Clover coverage report...
      Publishing Clover HTML report...
      Publishing Clover XML report...
      IOException when checking workspace path:remote file operation failed: /home/ec2-user/jenkins/workspace/the-job at hudson.remoting.Channel@69b58179:<the slave>: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@4836f4e9
      Publishing Clover coverage results...

      The coverage reports seem to be published back to the master correctly despite the IOException.

          [JENKINS-33610] IOException with Clover 4.6 plugin

          Hi there,

          I was dealing with the same problem.
          I'm using latest, 4.7.1 version.
          Not sure how this is related but the error is gone after I removed "Archiving artifacts" step.
          And it did not matter if I had it before or after "Clover Publisher" step.

          I hope this will be helpful to anyone

          Łukasz Wojciechowski added a comment - Hi there, I was dealing with the same problem. I'm using latest, 4.7.1 version. Not sure how this is related but the error is gone after I removed "Archiving artifacts" step. And it did not matter if I had it before or after "Clover Publisher" step. I hope this will be helpful to anyone

          trbaker: would you able to get the full stack trace for this error?

          lukaswoj: thanks for the hint; I suspect that it's either some network error or that Clover unintentionally uses some non-serialisable class

          I can investigate it but not sooner than in February. Feel free to grab code from github.com/jenkinsci/clover-plugin to debug it if you wish.

          Marek Parfianowicz added a comment - trbaker : would you able to get the full stack trace for this error? lukaswoj : thanks for the hint; I suspect that it's either some network error or that Clover unintentionally uses some non-serialisable class I can investigate it but not sooner than in February. Feel free to grab code from github.com/jenkinsci/clover-plugin to debug it if you wish.

          mparfianowicz - sorry but it looks like I lied in my previous comment.
          After I removed "Archiving Artifacts" - I still see the same exception being thrown.
          The difference, though is that it does no longer causes build to end up with FAILURE state - this is why I missed that fact.
          When my build turned from red to green I blindly assumed the exception is gone but apparently this is not the case.

          I would happily provide a stack trace but I need guidance on how to produce it. Not sure why in this case stack trace is missing. Within our Jenkins setup, other exceptions that occurs sometimes have full stack trace shown "by default".

          Łukasz Wojciechowski added a comment - mparfianowicz - sorry but it looks like I lied in my previous comment. After I removed "Archiving Artifacts" - I still see the same exception being thrown. The difference, though is that it does no longer causes build to end up with FAILURE state - this is why I missed that fact. When my build turned from red to green I blindly assumed the exception is gone but apparently this is not the case. I would happily provide a stack trace but I need guidance on how to produce it. Not sure why in this case stack trace is missing. Within our Jenkins setup, other exceptions that occurs sometimes have full stack trace shown "by default".

          Nancy Chopra added a comment -

          I am facing the same issue. Could this be causing the clover xml to not be parsed? The build status is marked as green no matter what the thresh hold is.

          Nancy Chopra added a comment - I am facing the same issue. Could this be causing the clover xml to not be parsed? The build status is marked as green no matter what the thresh hold is.

          Mark Cariddi added a comment -

          I see the XML published by I am not able to see the bullseye coverate report.   

          Mark Cariddi added a comment - I see the XML published by I am not able to see the bullseye coverate report.   

          Code changed in jenkins
          User: Marek Parfianowicz
          Path:
          src/main/java/hudson/plugins/clover/CloverPublisher.java
          src/main/java/hudson/plugins/clover/slave/GetPathFileCallable.java
          http://jenkins-ci.org/commit/clover-plugin/c356a20e9f14da32db36194a2e80e1827ead0c44
          Log:
          JENKINS-33610: extracted anonymous class to lop-level to get rid of
          NoClassDefFoundError: hudson/plugins/clover/CloverPublisher$1'; added more logging

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Marek Parfianowicz Path: src/main/java/hudson/plugins/clover/CloverPublisher.java src/main/java/hudson/plugins/clover/slave/GetPathFileCallable.java http://jenkins-ci.org/commit/clover-plugin/c356a20e9f14da32db36194a2e80e1827ead0c44 Log: JENKINS-33610 : extracted anonymous class to lop-level to get rid of NoClassDefFoundError: hudson/plugins/clover/CloverPublisher$1'; added more logging

          Code changed in jenkins
          User: Marek Parfianowicz
          Path:
          src/main/java/hudson/plugins/clover/CloverPublisher.java
          http://jenkins-ci.org/commit/clover-plugin/df5b18dc7a8a667464f522c8f9bc3963d645140f
          Log:
          JENKINS-33610: println

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Marek Parfianowicz Path: src/main/java/hudson/plugins/clover/CloverPublisher.java http://jenkins-ci.org/commit/clover-plugin/df5b18dc7a8a667464f522c8f9bc3963d645140f Log: JENKINS-33610 : println

          I had a different exception in the log, but after my change I don't see any errors with remote agents.

          I think the change should fix the problem reported by you. I think that because the hudson/plugins/clover/CloverPublisher$1 was an anonymous inner class, so it had a reference to an enclosing class, i.e. the CloverPublisher which does not implement Serializable interface.

          And the most probably the CloverPublisher$1 (now renamed to GetPathFileCallable, which implements SlaveToMasterFileCallable) was called by the FileCallableWrapper mentioned in the bug description.

          Marek Parfianowicz added a comment - I had a different exception in the log, but after my change I don't see any errors with remote agents. I think the change should fix the problem reported by you. I think that because the hudson/plugins/clover/CloverPublisher$1 was an anonymous inner class, so it had a reference to an enclosing class, i.e. the CloverPublisher which does not implement Serializable interface. And the most probably the CloverPublisher$1 (now renamed to GetPathFileCallable, which implements SlaveToMasterFileCallable) was called by the FileCallableWrapper mentioned in the bug description.

          Fix will be delivered in 4.8.1+

          Marek Parfianowicz added a comment - Fix will be delivered in 4.8.1+

            Unassigned Unassigned
            trbaker Trevor Baker
            Votes:
            12 Vote for this issue
            Watchers:
            17 Start watching this issue

              Created:
              Updated:
              Resolved: