-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
jenkins 2.107.3
git-plugin 3.9.0
github-plugin 1.29.0
github API 1.90
I am seeing some long delays between github webhook events and jobs polling for changes (e.g. from GitHub Hook Log). Note the almost 17 1/2 hour gap between the event being received and the polling being performed.
Started on Oct 16, 2018 2:46:44 PM
Started by event from 43.148.32.90 ? https://<jenkins>/github-webhook/ on Mon Oct 15 21:19:54 BST 2018
[poll] Last Built Revision: Revision c7013e0bb447b77bf13e719201ce2acb44b073af (refs/remotes/origin/<branch>)
{{ > git --version # timeout=30}}
using GIT_SSH to set credentials <creds>
{{ > git ls-remote -h <repo> # timeout=30}}
Found 345 remote heads on <git_url>
[poll] Latest remote head revision on refs/heads/<branch> is: c7013e0bb447b77bf13e719201ce2acb44b073af - already built by 34835
Done. Took 3 sec
No changes
I have checked that github is sending the webhook notifications and these get a http 200 response code.
The Jenkins Log reports the PushEvents are being received and that my build job is being "Poked" but polling is not being run for the job.
Oct 16, 2018 3:29:50 PM FINEST org.jenkinsci.plugins.github.webhook.GHEventPayload$PayloadHandler parse
{{Payload }}
...
Oct 16, 2018 3:29:50 PM INFO org.jenkinsci.plugins.github.webhook.subscriber.DefaultPushGHEventSubscriber onEvent
Received PushEvent for https://<github>/<user>/<repo> from <ip> ⇒ https://<jenkins>/github-webhook/
Oct 16, 2018 3:29:51 PM FINE org.jenkinsci.plugins.github.webhook.subscriber.DefaultPushGHEventSubscriber$1 run
Considering to poke my_build
Oct 16, 2018 3:29:51 PM INFO org.jenkinsci.plugins.github.webhook.subscriber.DefaultPushGHEventSubscriber$1 run
Poked my_build
The agent that my_build runs on is not permanently busy.
Any idea what is going on here? How can I debug this further?
We have a lot of jobs (~1000) and possibly a lot (10s) of jobs polling SCMs but I can't imagine this would take 17 1/2 hours...
It looks like all 10 of the SCM polling threads were stuck processing another job. (e.g.)
SCMTrigger 3
"SCMTrigger 3" Id=334 Group=main WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@7088b71d at sun.misc.Unsafe.park(Native Method) - waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@7088b71d at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
Waiting to acquire C:\j\w\JobName : GitHubPushTrigger 3
"Waiting to acquire C:\j\w\JobName : GitHubPushTrigger 3" Id=857002 Group=main WAITING on hudson.slaves.WorkspaceList@744f269b at java.lang.Object.wait(Native Method) - waiting on hudson.slaves.WorkspaceList@744f269b at java.lang.Object.wait(Object.java:502) at hudson.slaves.WorkspaceList.acquire(WorkspaceList.java:257) at hudson.slaves.WorkspaceList.acquire(WorkspaceList.java:236) at hudson.model.AbstractProject.pollWithWorkspace(AbstractProject.java:1405) at hudson.model.AbstractProject._poll(AbstractProject.java:1382) at hudson.model.AbstractProject.poll(AbstractProject.java:1293) at jenkins.triggers.SCMTriggerItem$SCMTriggerItems$Bridge.poll(SCMTriggerItem.java:143) at com.cloudbees.jenkins.GitHubPushTrigger$1.runPolling(GitHubPushTrigger.java:109) at com.cloudbees.jenkins.GitHubPushTrigger$1.run(GitHubPushTrigger.java:135) at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:119) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 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) Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@4045db32