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

MavenBuild$ProxyImpl.setResult illegally called after build is COMPLETED

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • maven-plugin
    • Jenkins 1.587

      This one seems to be rather tricky.

      After upgrade to 1.587, I saw this exception during the the run of the sonar plugin in a post step:

      20:19:33 Warte bis Jenkins die Datensammlung abgeschlossen hat
      20:19:33 [ERROR] Internal error: java.lang.IllegalStateException: cannot change build result while in COMPLETED -> [Help 1]
      20:19:33 org.apache.maven.InternalErrorException: Internal error: java.lang.IllegalStateException: cannot change build result while in COMPLETED
      20:19:33 	at org.apache.maven.lifecycle.internal.BuilderCommon.handleBuildError(BuilderCommon.java:128)
      20:19:33 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:95)
      20:19:33 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
      20:19:33 	at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
      20:19:33 	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
      20:19:33 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
      20:19:33 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
      20:19:33 	at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:117)
      20:19:33 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      20:19:33 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      20:19:33 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      20:19:33 	at java.lang.reflect.Method.invoke(Method.java:597)
      20:19:33 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
      20:19:33 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
      20:19:33 	at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:178)
      20:19:33 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      20:19:33 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      20:19:33 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      20:19:33 	at java.lang.reflect.Method.invoke(Method.java:597)
      20:19:33 	at hudson.maven.Maven3Builder.call(Maven3Builder.java:136)
      20:19:33 	at hudson.maven.Maven3Builder.call(Maven3Builder.java:71)
      20:19:33 	at hudson.remoting.UserRequest.perform(UserRequest.java:121)
      20:19:33 	at hudson.remoting.UserRequest.perform(UserRequest.java:49)
      20:19:33 	at hudson.remoting.Request$2.run(Request.java:324)
      20:19:33 	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
      20:19:33 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      20:19:33 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      20:19:33 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
      20:19:33 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
      20:19:33 	at java.lang.Thread.run(Thread.java:662)
      20:19:33 Caused by: java.lang.IllegalStateException: cannot change build result while in COMPLETED
      20:19:33 	at hudson.model.Run.setResult(Run.java:458)
      20:19:33 	at hudson.maven.MavenBuild$ProxyImpl.setResult(MavenBuild.java:494)
      20:19:33 	at hudson.maven.MavenBuild$ProxyImpl2.setResult(MavenBuild.java:547)
      20:19:33 	at sun.reflect.GeneratedMethodAccessor318.invoke(Unknown Source)
      20:19:33 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      20:19:33 	at java.lang.reflect.Method.invoke(Method.java:483)
      20:19:33 	at hudson.model.Executor$1.call(Executor.java:579)
      20:19:33 	at hudson.util.InterceptingProxy$1.invoke(InterceptingProxy.java:23)
      20:19:33 	at com.sun.proxy.$Proxy91.setResult(Unknown Source)
      20:19:33 	at sun.reflect.GeneratedMethodAccessor318.invoke(Unknown Source)
      20:19:33 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      20:19:33 	at java.lang.reflect.Method.invoke(Method.java:483)
      20:19:33 	at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:320)
      20:19:33 	at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:295)
      20:19:33 	at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:254)
      20:19:33 	at hudson.remoting.UserRequest.perform(UserRequest.java:121)
      20:19:33 	at hudson.remoting.UserRequest.perform(UserRequest.java:49)
      20:19:33 	at hudson.remoting.Request$2.run(Request.java:324)
      20:19:33 	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
      20:19:33 	at org.jenkinsci.remoting.CallableDecorator.call(CallableDecorator.java:18)
      20:19:33 	at hudson.remoting.CallableDecoratorList$1.call(CallableDecoratorList.java:21)
      20:19:33 	at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
      20:19:33 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      20:19:33 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      20:19:33 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      20:19:33 	at java.lang.Thread.run(Thread.java:745)
      20:19:33 	at ......remote call to channel(Native Method)
      20:19:33 	at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1356)
      20:19:33 	at hudson.remoting.UserResponse.retrieve(UserRequest.java:221)
      20:19:33 	at hudson.remoting.Channel.call(Channel.java:752)
      20:19:33 	at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:173)
      20:19:33 	at com.sun.proxy.$Proxy7.setResult(Unknown Source)
      20:19:33 	at hudson.maven.MavenBuildProxy$Filter.setResult(MavenBuildProxy.java:235)
      20:19:33 	at hudson.maven.Maven3Builder$MavenExecutionListener.recordProjectEnded(Maven3Builder.java:554)
      20:19:33 	at hudson.maven.Maven3Builder$MavenExecutionListener.projectSucceeded(Maven3Builder.java:538)
      20:19:33 	at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:74)
      20:19:33 	at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:42)
      20:19:33 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:91)
      20:19:33 	... 28 more
      

      A also found mentions of similar behaviour here: https://groups.google.com/forum/#!topic/jenkinsci-users/jrkAQyq6jLs

      Downgrading to 1.583 did work for me.

      Somehow, the State of the run seems to be changed to COMPLETED before the actual build is finished.

      I think the reason for this to show up only now lies here: https://github.com/jenkinsci/jenkins/commit/28dfd90d2d6ae99c57eb174871c46f4e07e303ba#diff-c4f9931d88bca347279b881007d71f0eL445

      Earlier, since asserts are disabled by default, it never presented a problem until this change.

            Unassigned Unassigned
            paux Stephan Pauxberger
            Votes:
            17 Vote for this issue
            Watchers:
            27 Start watching this issue

              Created:
              Updated: