i-m-c / jenkins-inheritance-plugin

GNU Lesser General Public License v3.0
26 stars 34 forks source link

Thread deadlock #47

Open Anigif opened 8 years ago

Anigif commented 8 years ago

After upgrading to Jenkins 2.0, a deadlock occurred between some threads. I'm not 100% sure it's the Inheritance Projects fault, but fear so - and hope you'll be able to help finding the problem.

There are four threads stuck, here's the stacktraces for them:

CPU/USER timer: 111 / 72
Deamon: Yes
Priority: 5
STACKTRACE:
Executor #0 for ORDBOGEN9-PC : executing writeassistant-win7_visualstudio_test_external-wordintegrationtesthelper_in_separate_thread #106
jenkins.triggers.ReverseBuildTrigger$RunListenerImpl.onCompleted(ReverseBuildTrigger.java:245)
hudson.model.listeners.RunListener.fireCompleted(RunListener.java:202)
hudson.model.Run.execute(Run.java:1783)
hudson.plugins.project_inheritance.projects.InheritanceBuild.run(InheritanceBuild.java:139)
hudson.model.ResourceController.execute(ResourceController.java:98)
hudson.model.Executor.run(Executor.java:410)

CPU/USER timer: 1.742 / 429
Deamon: Yes
Priority: 5
STACKTRACE:
Executor #0 for PC37 : executing synergy-win10_qmake_test_external-release_0.1.0 #49
hudson.plugins.project_inheritance.projects.InheritanceProject.getTriggers(InheritanceProject.java:3064)
jenkins.model.ParameterizedJobMixIn.getTrigger(ParameterizedJobMixIn.java:292)
jenkins.triggers.ReverseBuildTrigger$RunListenerImpl$1.run(ReverseBuildTrigger.java:219)
hudson.security.ACL.impersonate(ACL.java:198)
jenkins.triggers.ReverseBuildTrigger$RunListenerImpl.calculateCache(ReverseBuildTrigger.java:215)
jenkins.triggers.ReverseBuildTrigger$RunListenerImpl.onCompleted(ReverseBuildTrigger.java:247)
hudson.model.listeners.RunListener.fireCompleted(RunListener.java:202)
hudson.model.Run.execute(Run.java:1783)
hudson.plugins.project_inheritance.projects.InheritanceBuild.run(InheritanceBuild.java:139)
hudson.model.ResourceController.execute(ResourceController.java:98)
hudson.model.Executor.run(Executor.java:410)

CPU/USER timer: 28 / 14
Deamon: Yes
Priority: 5
STACKTRACE:
Executor #1 for master : executing sync-wordsuggestionsserver #36163
jenkins.triggers.ReverseBuildTrigger$RunListenerImpl.onCompleted(ReverseBuildTrigger.java:245)
hudson.model.listeners.RunListener.fireCompleted(RunListener.java:202)
hudson.model.Run.execute(Run.java:1783)
hudson.plugins.project_inheritance.projects.InheritanceBuild.run(InheritanceBuild.java:139)
hudson.model.ResourceController.execute(ResourceController.java:98)
hudson.model.Executor.run(Executor.java:410)

CPU/USER timer: 74.783 / 70.839
Deamon: Yes
Priority: 5
STACKTRACE:
jenkins.util.Timer [#7]
jenkins.triggers.ReverseBuildTrigger$RunListenerImpl.invalidateCache(ReverseBuildTrigger.java:210)
jenkins.triggers.ReverseBuildTrigger.start(ReverseBuildTrigger.java:152)
jenkins.triggers.ReverseBuildTrigger.start(ReverseBuildTrigger.java:86)
hudson.plugins.project_inheritance.projects.InheritanceProject.getReparentedTrigger(InheritanceProject.java:2642)
hudson.plugins.project_inheritance.projects.InheritanceProject.getTriggers(InheritanceProject.java:3103)
hudson.plugins.project_inheritance.projects.InheritanceProject.getTriggers(InheritanceProject.java:3064)
hudson.triggers.Trigger.checkTriggers(Trigger.java:265)
hudson.triggers.Trigger$Cron.doRun(Trigger.java:221)
hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:50)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)

The Jenkins interface doesn't seem to be stuck, but the builds are stuck almost before they are done. When looking at the builds, they is stated as done, but in the overview they are still running and in the console output, there is a spinner (as there normally are when it is waiting for console output from the executor) and the last part (e.g. "FINISHED: Sucess") is missing.