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

Warnings plugin does not work on a slave

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved (View Workflow)
    • Major
    • Resolution: Not A Defect
    • warnings-plugin
    • Tried both with:
      - a windows master, and a linux slave. Jenkins 1.440 Warnings 3.24
      - a linux box (different from the above) acting both as master and slave, Jenkins 1.440, Warnings 3.24

    Description

      I create my own parser. If I use the Warning parsing on the master it works as expected. If I make the parsing on the slave it always reports 0 warnings

      Attachments

        Issue Links

          Activity

            maxrossello Massimo Rossello created issue -
            maxrossello Massimo Rossello made changes -
            Field Original Value New Value
            Affects Version/s current [ 10162 ]
            drulli Ulli Hafner added a comment -

            How did you create the parser? Using the UI or by implementing the extension point?

            drulli Ulli Hafner added a comment - How did you create the parser? Using the UI or by implementing the extension point?

            I used the UI in the master configuration

            maxrossello Massimo Rossello added a comment - I used the UI in the master configuration

            I don't know if it is important, master and slave communicate through ssh in both configurations

            maxrossello Massimo Rossello added a comment - I don't know if it is important, master and slave communicate through ssh in both configurations
            drulli Ulli Hafner added a comment - - edited

            Actually parsing of the console log is always done on the master. Is your parser working on a file? Then I see a potential problem, since the parser is working on a remote file. I think that the available parsers are not serialized to the slave.

            drulli Ulli Hafner added a comment - - edited Actually parsing of the console log is always done on the master. Is your parser working on a file? Then I see a potential problem, since the parser is working on a remote file. I think that the available parsers are not serialized to the slave.

            Yes, it is working on a file.

            Yet, on the log I can see the following output if and only if the file exists:

            [WARNINGS] Parsing warnings in files '<myfile>' with parser <myparser>
            [WARNINGS] Parsing 1 files in /opt/server/workspace/prova
            [WARNINGS] Successfully parsed file /opt/server/workspace/prova/<myfile> of module with 0 warnings.

            otherwise only the first line is emitted.

            In this example, /opt/server is the working directory of the slave.

            maxrossello Massimo Rossello added a comment - Yes, it is working on a file. Yet, on the log I can see the following output if and only if the file exists: [WARNINGS] Parsing warnings in files '<myfile>' with parser <myparser> [WARNINGS] Parsing 1 files in /opt/server/workspace/prova [WARNINGS] Successfully parsed file /opt/server/workspace/prova/<myfile> of module with 0 warnings. otherwise only the first line is emitted. In this example, /opt/server is the working directory of the slave.

            Do you think this issue can be solved or shall I better look for a workaround? Tnx

            maxrossello Massimo Rossello added a comment - Do you think this issue can be solved or shall I better look for a workaround? Tnx
            drulli Ulli Hafner added a comment -

            This issue can be solved. I just need to add the serialization of the parsers, which does not work currently. I'm quite busy now so this will need some time...

            drulli Ulli Hafner added a comment - This issue can be solved. I just need to add the serialization of the parsers, which does not work currently. I'm quite busy now so this will need some time...

            Ok, it's just to know if it is worth waiting. Thanks

            maxrossello Massimo Rossello added a comment - Ok, it's just to know if it is worth waiting. Thanks
            drulli Ulli Hafner added a comment -

            Hi Massimo, sorry that it took so long to look into this issue.

            I set up a master slave build on my machine and did not encounter that problem. Seems that the serialization works without any modifications. So maybe the problem is somewhere else, e.g. maybe the file with the warnings is just not found?

            Here my output:

            [WARNINGS] Parsing warnings in files '**/log.txt' with parser Ulli
            [WARNINGS] Parsing 1 files in /home/hafner/slave/workspace/analysis-core
            [WARNINGS] Successfully parsed file /home/hafner/slave/workspace/analysis-core/log.txt of module  with 6 warnings.
            [WARNINGS] Computing warning deltas based on reference build #11
            

            What exact pattern are you using for the filenames? Does it correctly expand to the folder /opt/server?

            drulli Ulli Hafner added a comment - Hi Massimo, sorry that it took so long to look into this issue. I set up a master slave build on my machine and did not encounter that problem. Seems that the serialization works without any modifications. So maybe the problem is somewhere else, e.g. maybe the file with the warnings is just not found? Here my output: [WARNINGS] Parsing warnings in files '**/log.txt' with parser Ulli [WARNINGS] Parsing 1 files in /home/hafner/slave/workspace/analysis-core [WARNINGS] Successfully parsed file /home/hafner/slave/workspace/analysis-core/log.txt of module with 6 warnings. [WARNINGS] Computing warning deltas based on reference build #11 What exact pattern are you using for the filenames? Does it correctly expand to the folder /opt/server?

            I use a path without wildcards relative to the workspace, such as 'reports/myfile.txt'

            maxrossello Massimo Rossello added a comment - I use a path without wildcards relative to the workspace, such as 'reports/myfile.txt'
            drulli Ulli Hafner added a comment - - edited

            Ah, that must be the problem, can you please try:

            **/reports/myfile.txt
            drulli Ulli Hafner added a comment - - edited Ah, that must be the problem, can you please try: **/reports/myfile.txt

            Hi,
            no, the problem is still there.

            [WARNINGS] Parsing warnings in files '**/reports/myfile.txt' with parser AzcomLint
            [WARNINGS] Parsing 1 files in /opt/server/jenkins/workspace/nightly_trunk
            [WARNINGS] Successfully parsed file /opt/server/jenkins/workspace/nightly_trunk/reports/myfile.txt of module  with 0 warnings.
            
            maxrossello Massimo Rossello added a comment - Hi, no, the problem is still there. [WARNINGS] Parsing warnings in files '**/reports/myfile.txt' with parser AzcomLint [WARNINGS] Parsing 1 files in /opt/server/jenkins/workspace/nightly_trunk [WARNINGS] Successfully parsed file /opt/server/jenkins/workspace/nightly_trunk/reports/myfile.txt of module with 0 warnings.
            drulli Ulli Hafner added a comment -

            Sorry, seems that I mis-interpreted your comments I thought the file was not found at all. Seems that the file is parsed but no warnings are found...

            drulli Ulli Hafner added a comment - Sorry, seems that I mis-interpreted your comments I thought the file was not found at all. Seems that the file is parsed but no warnings are found...
            drulli Ulli Hafner added a comment -

            Ok, now I also tried with a real master slave configuration (two different machines), however I still can't reproduce the bug. Maybe the log messages are different in your file if they are produced on the slave. (Backslash vs. Slash). Can you please check if your regular expression works the same way on the slave?

            If everything works fine on your side, please attach a sample log file and the parameters of the parser so I can try to reproduce on my machine.

            drulli Ulli Hafner added a comment - Ok, now I also tried with a real master slave configuration (two different machines), however I still can't reproduce the bug. Maybe the log messages are different in your file if they are produced on the slave. (Backslash vs. Slash). Can you please check if your regular expression works the same way on the slave? If everything works fine on your side, please attach a sample log file and the parameters of the parser so I can try to reproduce on my machine.

            I use a Windows master and a Linux slave, but it is a linux app generating the log, so I tried on the master by copying exactly the same file.
            Curiously, on the master config, in the "Example log message" area, a warning is recognized only if the sample log is less than some length (like 500 characters).

            I think you can try this sample (I just duplicated the same warning to catch it multiple times):

            log:

            *********************************************************************************
            src/some/path/of/mine/file.txt
            *********************************************************************************
            FLMSG Warning   451 /opt/server/jenkins/workspace/prova/src/component/include/myInclude.h,28 Header file '/opt/ti/xdctools_3_22_01_21/packages/xdc/runtime/Main.h' repeatedly included but does not have a standard include guard
            FLMSG Warning   451 /opt/server/jenkins/workspace/prova/src/component/include/myInclude.h,28 Header file '/opt/ti/xdctools_3_22_01_21/packages/xdc/runtime/Main.h' repeatedly included but does not have a standard include guard
            FLMSG Warning   451 /opt/server/jenkins/workspace/prova/src/component/include/myInclude.h,28 Header file '/opt/ti/xdctools_3_22_01_21/packages/xdc/runtime/Main.h' repeatedly included but does not have a standard include guard
            FLMSG Warning   451 /opt/server/jenkins/workspace/prova/src/component/include/myInclude.h,28 Header file '/opt/ti/xdctools_3_22_01_21/packages/xdc/runtime/Main.h' repeatedly included but does not have a standard include guard
            

            Regular expression (I also tried adding ^ and $):

            FLMSG (\S+)\s+([0-9]+) ([^\s,]+),([0-9]+) (\S+)
            

            Mapping script:

            import hudson.plugins.warnings.parser.Warning
            
            String fileName = matcher.group(3)
            String code = matcher.group(2)
            String lineNumber = matcher.group(4)
            String type = matcher.group(1)
            String message = matcher.group(5)
            
            return new Warning(fileName, Integer.parseInt(lineNumber), type, code, message);
            
            maxrossello Massimo Rossello added a comment - I use a Windows master and a Linux slave, but it is a linux app generating the log, so I tried on the master by copying exactly the same file. Curiously, on the master config, in the "Example log message" area, a warning is recognized only if the sample log is less than some length (like 500 characters). I think you can try this sample (I just duplicated the same warning to catch it multiple times): log: ********************************************************************************* src/some/path/of/mine/file.txt ********************************************************************************* FLMSG Warning 451 /opt/server/jenkins/workspace/prova/src/component/include/myInclude.h,28 Header file '/opt/ti/xdctools_3_22_01_21/packages/xdc/runtime/Main.h' repeatedly included but does not have a standard include guard FLMSG Warning 451 /opt/server/jenkins/workspace/prova/src/component/include/myInclude.h,28 Header file '/opt/ti/xdctools_3_22_01_21/packages/xdc/runtime/Main.h' repeatedly included but does not have a standard include guard FLMSG Warning 451 /opt/server/jenkins/workspace/prova/src/component/include/myInclude.h,28 Header file '/opt/ti/xdctools_3_22_01_21/packages/xdc/runtime/Main.h' repeatedly included but does not have a standard include guard FLMSG Warning 451 /opt/server/jenkins/workspace/prova/src/component/include/myInclude.h,28 Header file '/opt/ti/xdctools_3_22_01_21/packages/xdc/runtime/Main.h' repeatedly included but does not have a standard include guard Regular expression (I also tried adding ^ and $): FLMSG (\S+)\s+([0-9]+) ([^\s,]+),([0-9]+) (\S+) Mapping script: import hudson.plugins.warnings.parser.Warning String fileName = matcher.group(3) String code = matcher.group(2) String lineNumber = matcher.group(4) String type = matcher.group(1) String message = matcher.group(5) return new Warning(fileName, Integer.parseInt(lineNumber), type, code, message);
            zerzuben Christian Zerzuben added a comment - - edited

            Hi Ulli
            I can also reproduce the problem on the slave. I use my own standalone parser plug-in, the warnings are in a file.
            If I print the warnings from the file to the console (cat warnings.log) and scan the console-log, then it works!

            zerzuben Christian Zerzuben added a comment - - edited Hi Ulli I can also reproduce the problem on the slave. I use my own standalone parser plug-in, the warnings are in a file. If I print the warnings from the file to the console ( cat warnings.log ) and scan the console-log, then it works!
            drulli Ulli Hafner made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            drulli Ulli Hafner added a comment -

            Hi Christian, is your master Windows and slave Linux, too? Or is it unrelated to the platform?

            drulli Ulli Hafner added a comment - Hi Christian, is your master Windows and slave Linux, too? Or is it unrelated to the platform?

            Code changed in jenkins
            User: Ulli Hafner
            Path:
            src/test/java/hudson/plugins/warnings/parser/DynamicParserTest.java
            src/test/resources/hudson/plugins/warnings/parser/issue11926.txt
            http://jenkins-ci.org/commit/warnings-plugin/e1f36ebe085e4835c26529b602507d26db7faaa6
            Log:
            JENKINS-11926 Added test case.

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Ulli Hafner Path: src/test/java/hudson/plugins/warnings/parser/DynamicParserTest.java src/test/resources/hudson/plugins/warnings/parser/issue11926.txt http://jenkins-ci.org/commit/warnings-plugin/e1f36ebe085e4835c26529b602507d26db7faaa6 Log: JENKINS-11926 Added test case.
            dogfood dogfood added a comment -

            Integrated in plugins_warnings #347
            JENKINS-11926 Added test case.

            Ulli Hafner :
            Files :

            • src/test/java/hudson/plugins/warnings/parser/DynamicParserTest.java
            • src/test/resources/hudson/plugins/warnings/parser/issue11926.txt
            dogfood dogfood added a comment - Integrated in plugins_warnings #347 JENKINS-11926 Added test case. Ulli Hafner : Files : src/test/java/hudson/plugins/warnings/parser/DynamicParserTest.java src/test/resources/hudson/plugins/warnings/parser/issue11926.txt

            I think the problem is unrelated to the platform. I can reproduce it with Solaris and Windows in different combinations.

            zerzuben Christian Zerzuben added a comment - I think the problem is unrelated to the platform. I can reproduce it with Solaris and Windows in different combinations.
            torbent torbent added a comment -

            These two issues are beginning to sound like symptoms of the same problem?

            torbent torbent added a comment - These two issues are beginning to sound like symptoms of the same problem?
            torbent torbent made changes -
            Link This issue is related to JENKINS-12280 [ JENKINS-12280 ]
            drulli Ulli Hafner added a comment -

            I still can't reproduce

            Maybe the problem is the connection type. How do you connect your master and slave? I'm using the JLNP Agent (clicking on the JNLP Image Button in the slave configuration view).

            drulli Ulli Hafner added a comment - I still can't reproduce Maybe the problem is the connection type. How do you connect your master and slave? I'm using the JLNP Agent (clicking on the JNLP Image Button in the slave configuration view).

            I use ssh to connect my windows master to my linux slave

            maxrossello Massimo Rossello added a comment - I use ssh to connect my windows master to my linux slave
            drulli Ulli Hafner added a comment -

            Ok, I can reproduce this issue now (it is the same as JENKINS-12280). The problem is that on the slave I don't have direct access to the dynamic parsers (and to the parsers registered via extension point). I.e., these parsers need to be serialized to the slave...

            drulli Ulli Hafner added a comment - Ok, I can reproduce this issue now (it is the same as JENKINS-12280 ). The problem is that on the slave I don't have direct access to the dynamic parsers (and to the parsers registered via extension point). I.e., these parsers need to be serialized to the slave...
            drulli Ulli Hafner added a comment - - edited

            I changed the serialisation now. I'll test this fix next week. If you would like to test, please pick up the latest integration (see https://issues.jenkins-ci.org/browse/JENKINS-12280?focusedCommentId=158174&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-158174).

            The build is available at http://ci.jenkins-ci.org/job/plugins_warnings/348/.

            drulli Ulli Hafner added a comment - - edited I changed the serialisation now. I'll test this fix next week. If you would like to test, please pick up the latest integration (see https://issues.jenkins-ci.org/browse/JENKINS-12280?focusedCommentId=158174&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-158174 ). The build is available at http://ci.jenkins-ci.org/job/plugins_warnings/348/ .
            drulli Ulli Hafner made changes -
            Resolution Fixed [ 1 ]
            Status In Progress [ 3 ] Resolved [ 5 ]

            Thank you!

            maxrossello Massimo Rossello added a comment - Thank you!
            drulli Ulli Hafner added a comment -

            Seems, that I need to serialize yet another object...

            drulli Ulli Hafner added a comment - Seems, that I need to serialize yet another object...
            drulli Ulli Hafner made changes -
            Resolution Fixed [ 1 ]
            Status Resolved [ 5 ] Reopened [ 4 ]

            Code changed in jenkins
            User: Ulli Hafner
            Path:
            src/main/java/hudson/plugins/warnings/parser/GroovyExpressionMatcher.java
            http://jenkins-ci.org/commit/warnings-plugin/a39922f468a93eeaef749034ee42aede81ad7088
            Log:
            [FIXED JENKINS-12280] [FIXED JENKINS-11926] Make GroovyExpressionMatcher
            serializable.

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Ulli Hafner Path: src/main/java/hudson/plugins/warnings/parser/GroovyExpressionMatcher.java http://jenkins-ci.org/commit/warnings-plugin/a39922f468a93eeaef749034ee42aede81ad7088 Log: [FIXED JENKINS-12280] [FIXED JENKINS-11926] Make GroovyExpressionMatcher serializable.
            dogfood dogfood added a comment -

            Integrated in plugins_warnings #350
            [FIXED JENKINS-12280] [FIXED JENKINS-11926] Make GroovyExpressionMatcher (Revision a39922f468a93eeaef749034ee42aede81ad7088)

            Result = SUCCESS
            Ulli Hafner :
            Files :

            • src/main/java/hudson/plugins/warnings/parser/GroovyExpressionMatcher.java
            dogfood dogfood added a comment - Integrated in plugins_warnings #350 [FIXED JENKINS-12280] [FIXED JENKINS-11926] Make GroovyExpressionMatcher (Revision a39922f468a93eeaef749034ee42aede81ad7088) Result = SUCCESS Ulli Hafner : Files : src/main/java/hudson/plugins/warnings/parser/GroovyExpressionMatcher.java
            drulli Ulli Hafner added a comment -

            Fixed in 3.27.

            drulli Ulli Hafner added a comment - Fixed in 3.27.
            drulli Ulli Hafner made changes -
            Resolution Fixed [ 1 ]
            Status Reopened [ 4 ] Resolved [ 5 ]

            Sorry Ulli, but version 3.27 does not solve the issue to me

            maxrossello Massimo Rossello added a comment - Sorry Ulli, but version 3.27 does not solve the issue to me
            maxrossello Massimo Rossello made changes -
            Resolution Fixed [ 1 ]
            Status Resolved [ 5 ] Reopened [ 4 ]
            hendrik Hendrik Fuß added a comment -

            In fact I have a problem with Warnings in a setup with a Linux master and a Windows 7 slave, and 3.27 didn't solve it. However, I'm not using a custom parser.

            In my case, Warnings reports the number if warnings found and then throws an IOException (or similar). Will post the stack trace when I'm back at work next week.

            hendrik Hendrik Fuß added a comment - In fact I have a problem with Warnings in a setup with a Linux master and a Windows 7 slave, and 3.27 didn't solve it. However, I'm not using a custom parser. In my case, Warnings reports the number if warnings found and then throws an IOException (or similar). Will post the stack trace when I'm back at work next week.
            martinro martinro added a comment -

            I'm seeing now always an exception when a job with warning is executed on a Windows slave.
            A custom warning is configured using UI.
            The error start to appear after updating from Jenkins V1.409.3 to V1.424.2.
            Console output:

             
            [WARNINGS] Borland C++Builder : Found 1 warnings.
            ERROR: Publisher hudson.plugins.warnings.WarningsPublisher aborted due to exception
            hudson.util.IOException2: remote file operation failed: c:\Hudson-slave\workspace\C++Builder DE_Xyz at hudson.remoting.Channel@122a522:DEHudson-Slave1
            	at hudson.FilePath.act(FilePath.java:754)
            	at hudson.FilePath.act(FilePath.java:740)
            	at hudson.plugins.warnings.WarningsPublisher.perform(WarningsPublisher.java:246)
            	at hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:338)
            	at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27)
            	at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:682)
            	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:657)
            	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:635)
            	at hudson.model.Build$RunnerImpl.post2(Build.java:161)
            	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:604)
            	at hudson.model.Run.run(Run.java:1400)
            	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
            	at hudson.model.ResourceController.execute(ResourceController.java:88)
            	at hudson.model.Executor.run(Executor.java:175)
            Caused by: java.io.IOException: Remote call on DEHudson-Slave1 failed
            	at hudson.remoting.Channel.call(Channel.java:673)
            	at hudson.FilePath.act(FilePath.java:747)
            	... 13 more
            Caused by: java.lang.ClassNotFoundException: Failed to deserialize the Callable object. Perhaps you needed to implement DelegatingCallable?
            	at hudson.remoting.UserRequest.perform(UserRequest.java:100)
            	at hudson.remoting.UserRequest.perform(UserRequest.java:48)
            	at hudson.remoting.Request$2.run(Request.java:270)
            	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
            	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
            	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
            	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
            	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
            	at hudson.remoting.Engine$1$1.run(Engine.java:58)
            	at java.lang.Thread.run(Thread.java:619)
            Caused by: java.lang.ClassNotFoundException: hudson.plugins.warnings.parser.Warning
            	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
            	at java.security.AccessController.doPrivileged(Native Method)
            	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
            	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
            	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
            	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
            	at java.lang.Class.forName0(Native Method)
            	at java.lang.Class.forName(Class.java:247)
            	at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
            	at hudson.remoting.ObjectInputStreamEx.resolveClass(ObjectInputStreamEx.java:50)
            	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
            	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
            	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
            	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
            	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
            	at java.util.HashSet.readObject(HashSet.java:291)
            	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            	at java.lang.reflect.Method.invoke(Method.java:597)
            	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
            	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
            	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
            	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
            	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
            	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
            	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
            	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
            	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
            	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
            	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
            	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
            	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
            	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
            	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
            	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
            	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
            	at hudson.remoting.UserRequest.deserialize(UserRequest.java:178)
            	at hudson.remoting.UserRequest.perform(UserRequest.java:98)
            	... 9 more
            
            martinro martinro added a comment - I'm seeing now always an exception when a job with warning is executed on a Windows slave. A custom warning is configured using UI. The error start to appear after updating from Jenkins V1.409.3 to V1.424.2. Console output: [WARNINGS] Borland C++Builder : Found 1 warnings. ERROR: Publisher hudson.plugins.warnings.WarningsPublisher aborted due to exception hudson.util.IOException2: remote file operation failed: c:\Hudson-slave\workspace\C++Builder DE_Xyz at hudson.remoting.Channel@122a522:DEHudson-Slave1 at hudson.FilePath.act(FilePath.java:754) at hudson.FilePath.act(FilePath.java:740) at hudson.plugins.warnings.WarningsPublisher.perform(WarningsPublisher.java:246) at hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:338) at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27) at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:682) at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:657) at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:635) at hudson.model.Build$RunnerImpl.post2(Build.java:161) at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:604) at hudson.model.Run.run(Run.java:1400) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:175) Caused by: java.io.IOException: Remote call on DEHudson-Slave1 failed at hudson.remoting.Channel.call(Channel.java:673) at hudson.FilePath.act(FilePath.java:747) ... 13 more Caused by: java.lang.ClassNotFoundException: Failed to deserialize the Callable object. Perhaps you needed to implement DelegatingCallable? at hudson.remoting.UserRequest.perform(UserRequest.java:100) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:270) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at hudson.remoting.Engine$1$1.run(Engine.java:58) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.ClassNotFoundException: hudson.plugins.warnings.parser.Warning at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604) at hudson.remoting.ObjectInputStreamEx.resolveClass(ObjectInputStreamEx.java:50) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at java.util.HashSet.readObject(HashSet.java:291) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at hudson.remoting.UserRequest.deserialize(UserRequest.java:178) at hudson.remoting.UserRequest.perform(UserRequest.java:98) ... 9 more
            drulli Ulli Hafner added a comment -

            @martinro this is a totally different issue, please upgrade your slave.jar file.

            drulli Ulli Hafner added a comment - @martinro this is a totally different issue, please upgrade your slave.jar file.
            drulli Ulli Hafner added a comment -

            @Hendrik Fuß: please file a new bug report if this is not related to this issue.

            drulli Ulli Hafner added a comment - @Hendrik Fuß: please file a new bug report if this is not related to this issue.
            drulli Ulli Hafner added a comment - - edited

            @Christian: is this issue still present with your custom parser implementation?

            drulli Ulli Hafner added a comment - - edited @Christian: is this issue still present with your custom parser implementation?
            drulli Ulli Hafner added a comment -

            @Massimo Rossello: can you please attach the new console output?

            drulli Ulli Hafner added a comment - @Massimo Rossello: can you please attach the new console output?

            In my environment with the custom parser the problem is solved with 3.27!

            zerzuben Christian Zerzuben added a comment - In my environment with the custom parser the problem is solved with 3.27!

            @Ulli
            I tried again both a Windows master + Linux slave with Jenkins 1.450, and a Linux + Linux with Jenkins 1.451.
            I still have the same console output:

            [WARNINGS] Parsing warnings in files 'flexelint.txt' with parser MyLint
            [WARNINGS] Parsing 1 files in /opt/server/workspace/prova
            [WARNINGS] Successfully parsed file /opt/server/workspace/prova/flexelint.txt of module  with 0 warnings.
            
            maxrossello Massimo Rossello added a comment - @Ulli I tried again both a Windows master + Linux slave with Jenkins 1.450, and a Linux + Linux with Jenkins 1.451. I still have the same console output: [WARNINGS] Parsing warnings in files 'flexelint.txt' with parser MyLint [WARNINGS] Parsing 1 files in /opt/server/workspace/prova [WARNINGS] Successfully parsed file /opt/server/workspace/prova/flexelint.txt of module with 0 warnings.

            Sorry, on the Linux+Linux configuration it was a mistake of mine. As soon as I'll have access to the system, I check again the Windows+Linux configuration.

            Thanks

            maxrossello Massimo Rossello added a comment - Sorry, on the Linux+Linux configuration it was a mistake of mine. As soon as I'll have access to the system, I check again the Windows+Linux configuration. Thanks
            maxrossello Massimo Rossello added a comment - - edited

            Hi,
            I confirm that the Windows master (Jenkins 1.450) + Linux slave configuration DOES NOT work with 3.27. I see no progress at all.

            This problem is coupled (as before) with a strange behavior on the master configuration page. Whenever the example parsed text is over about 250 characters, a match is no more found (even if more text is appended after a previously matched text).

            Here is my current output:

            [WARNINGS] Parsing warnings in files 'reports/flexelint.txt' with parser AzcomLint
            [WARNINGS] Parsing 1 files in /opt/server/jenkins/workspace/customer1_continuous_trunk
            [WARNINGS] Successfully parsed file /opt/server/jenkins/workspace/customer1_continuous_trunk/reports/flexelint.txt of module  with 0 warnings.
            [WARNINGS] Computing warning deltas based on reference build #600
            

            Regards

            maxrossello Massimo Rossello added a comment - - edited Hi, I confirm that the Windows master (Jenkins 1.450) + Linux slave configuration DOES NOT work with 3.27. I see no progress at all. This problem is coupled (as before) with a strange behavior on the master configuration page. Whenever the example parsed text is over about 250 characters, a match is no more found (even if more text is appended after a previously matched text). Here is my current output: [WARNINGS] Parsing warnings in files 'reports/flexelint.txt' with parser AzcomLint [WARNINGS] Parsing 1 files in /opt/server/jenkins/workspace/customer1_continuous_trunk [WARNINGS] Successfully parsed file /opt/server/jenkins/workspace/customer1_continuous_trunk/reports/flexelint.txt of module with 0 warnings. [WARNINGS] Computing warning deltas based on reference build #600 Regards
            drulli Ulli Hafner added a comment - - edited

            Massimo, I think that the problem must be somewhere else. Maybe the output file is different. Would it be possible to attach the output as a file? Or conversely, can you check if the attached file issue11926.txt will be parsed by your parser if you copy it to the slave (or master).

            drulli Ulli Hafner added a comment - - edited Massimo, I think that the problem must be somewhere else. Maybe the output file is different. Would it be possible to attach the output as a file? Or conversely, can you check if the attached file issue11926.txt will be parsed by your parser if you copy it to the slave (or master).
            drulli Ulli Hafner made changes -
            Attachment issue11926.txt [ 21529 ]

            Ok, I will try to parse your attached file as soon as possible.
            Thanks

            maxrossello Massimo Rossello added a comment - Ok, I will try to parse your attached file as soon as possible. Thanks
            torbent torbent added a comment -

            Wild guesses; maybe helpful, maybe confusing:

            • Permission problem? Is the log file readable on the slave by the user that runs the Jenkins service?
            • In our setup, the workspaces are on network drives and reachable from both master and slave (although not at identical paths). Could it be that both server and slave need access to the workspace for dynamic warnings parsing to work?
            • Or perhaps the expression just doesn't match? For example I'd guess that $5 is wrong (should probably be (.*)). Does the dynamic parser expect to be able to match a whole line?
            • Did you happen to forget restarting Jenkins after installing Warnings 3.27?

            Hope this helps. My very similar JENKINS-12280 issue seems to be solved by version 3.27 (a little extra test is still pending).

            torbent torbent added a comment - Wild guesses; maybe helpful, maybe confusing: Permission problem? Is the log file readable on the slave by the user that runs the Jenkins service? In our setup, the workspaces are on network drives and reachable from both master and slave (although not at identical paths). Could it be that both server and slave need access to the workspace for dynamic warnings parsing to work? Or perhaps the expression just doesn't match? For example I'd guess that $5 is wrong (should probably be (.*)). Does the dynamic parser expect to be able to match a whole line? Did you happen to forget restarting Jenkins after installing Warnings 3.27? Hope this helps. My very similar JENKINS-12280 issue seems to be solved by version 3.27 (a little extra test is still pending).

            Solved.

            I did not notice that some colleague of mine slightly changed the format of the output.

            Thanks to everybody!
            Massimo

            maxrossello Massimo Rossello added a comment - Solved. I did not notice that some colleague of mine slightly changed the format of the output. Thanks to everybody! Massimo

            Issue reopening was due to an error in usage

            maxrossello Massimo Rossello added a comment - Issue reopening was due to an error in usage
            maxrossello Massimo Rossello made changes -
            Resolution Not A Defect [ 7 ]
            Status Reopened [ 4 ] Resolved [ 5 ]
            rtyler R. Tyler Croy made changes -
            Workflow JNJira [ 142169 ] JNJira + In-Review [ 190013 ]

            People

              drulli Ulli Hafner
              maxrossello Massimo Rossello
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: