-
Bug
-
Resolution: Won't Fix
-
Major
-
None
-
'ace-editor':'1.1'
'ansicolor':'0.5.0'
'ant':'1.4'
'antisamy-markup-formatter':'1.5'
'artifactory':'2.8.2'
'authentication-tokens':'1.3'
'aws-java-sdk':'1.10.50'
'blueocean':'1.0.0-b25'
'blueocean-autofavorite':'0.6'
'blueocean-commons':'1.0.0-b25'
'blueocean-config':'1.0.0-b25'
'blueocean-dashboard':'1.0.0-b25'
'blueocean-display-url':'1.5.1'
'blueocean-events':'1.0.0-b25'
'blueocean-git-pipeline':'1.0.0-b25'
'blueocean-github-pipeline':'1.0.0-b25'
'blueocean-i18n':'1.0.0-b25'
'blueocean-jwt':'1.0.0-b25'
'blueocean-personalization':'1.0.0-b25'
'blueocean-pipeline-api-impl':'1.0.0-b25'
'blueocean-pipeline-editor':'0.1-preview-4'
'blueocean-rest':'1.0.0-b25'
'blueocean-rest-impl':'1.0.0-b25'
'blueocean-web':'1.0.0-b25'
'bouncycastle-api':'2.16.0'
'branch-api':'2.0.7'
'build-blocker-plugin':'1.7.3'
'build-timeout':'1.17.1'
'cloudbees-folder':'6.0.2'
'cobertura':'1.10'
'config-file-provider':'2.15.7'
'copyartifact':'1.37'
'credentials':'2.1.13'
'credentials-binding':'1.12'
'display-url-api':'1.1.1'
'docker-commons':'1.8'
'docker-workflow':'1.9'
'durable-task':'1.13'
'email-ext':'2.58'
'external-monitor-job':'1.6'
'favorite':'2.3.0'
'ghprb':'1.33.1'
'git':'3.4.1'
'git-client':'2.4.6'
'git-server':'1.7'
'github':'1.26.1'
'github-api':'1.86'
'github-branch-source':'2.2.2'
'github-organization-folder':'1.6'
'gradle':'1.25'
'graphiteIntegrator':'1.2'
'handlebars':'1.1.1'
'hipchat':'1.0.0'
'hockeyapp':'1.2.2'
'htmlpublisher':'1.12'
'http-post':'1.2'
'http_request':'1.8.12'
'icon-shim':'2.0.3'
'ivy':'1.26'
'jackson2-api':'2.7.3'
'javadoc':'1.4'
'jobConfigHistory':'2.15'
'jquery-detached':'1.2.1'
'junit':'1.20'
'ldap':'1.14'
'lockable-resources':'2.0'
'mailer':'1.20'
'mapdb-api':'1.0.9.0'
'matrix-auth':'1.7'
'matrix-project':'1.7.1'
'maven-plugin':'2.13'
'metrics':'3.1.2.9'
'momentjs':'1.1.1'
'pam-auth':'1.3'
'performance':'2.0'
'pipeline-build-step':'2.5.1'
'pipeline-github-lib':'1.0'
'pipeline-graph-analysis':'1.3'
'pipeline-input-step':'2.5'
'pipeline-milestone-step':'1.1'
'pipeline-model-api':'1.0.2'
'pipeline-model-declarative-agent':'1.0.2'
'pipeline-model-definition':'1.0.2'
'pipeline-rest-api':'2.1'
'pipeline-stage-step':'2.2'
'pipeline-stage-tags-metadata':'1.0.2'
'pipeline-stage-view':'2.1'
'plain-credentials':'1.3'
'pubsub-light':'1.7'
's3':'0.10.10'
'scm-api':'2.2.0'
'script-security':'1.30'
'simple-theme-plugin':'0.3'
'sse-gateway':'1.15'
'ssh-agent':'1.13'
'ssh-credentials':'1.13'
'ssh-slaves':'1.20'
'structs':'1.9'
'subversion':'2.9'
'swarm':'2.2'
'timestamper':'1.8.7'
'token-macro':'2.0'
'variant':'1.1'
'versionnumber':'1.8.1'
'view-job-filters':'1.27'
'windows-slaves':'1.2'
'workflow-aggregator':'2.4'
'workflow-api':'2.12'
'workflow-basic-steps':'2.4'
'workflow-cps':'2.30'
'workflow-cps-global-lib':'2.7'
'workflow-durable-task-step':'2.9'
'workflow-job':'2.10'
'workflow-multibranch':'2.13'
'workflow-scm-step':'2.4'
'workflow-step-api':'2.9'
'workflow-support':'2.14'
'ws-cleanup':'0.30'
Core: 2.60'ace-editor':'1.1' 'ansicolor':'0.5.0' 'ant':'1.4' 'antisamy-markup-formatter':'1.5' 'artifactory':'2.8.2' 'authentication-tokens':'1.3' 'aws-java-sdk':'1.10.50' 'blueocean':'1.0.0-b25' 'blueocean-autofavorite':'0.6' 'blueocean-commons':'1.0.0-b25' 'blueocean-config':'1.0.0-b25' 'blueocean-dashboard':'1.0.0-b25' 'blueocean-display-url':'1.5.1' 'blueocean-events':'1.0.0-b25' 'blueocean-git-pipeline':'1.0.0-b25' 'blueocean-github-pipeline':'1.0.0-b25' 'blueocean-i18n':'1.0.0-b25' 'blueocean-jwt':'1.0.0-b25' 'blueocean-personalization':'1.0.0-b25' 'blueocean-pipeline-api-impl':'1.0.0-b25' 'blueocean-pipeline-editor':'0.1-preview-4' 'blueocean-rest':'1.0.0-b25' 'blueocean-rest-impl':'1.0.0-b25' 'blueocean-web':'1.0.0-b25' 'bouncycastle-api':'2.16.0' 'branch-api':'2.0.7' 'build-blocker-plugin':'1.7.3' 'build-timeout':'1.17.1' 'cloudbees-folder':'6.0.2' 'cobertura':'1.10' 'config-file-provider':'2.15.7' 'copyartifact':'1.37' 'credentials':'2.1.13' 'credentials-binding':'1.12' 'display-url-api':'1.1.1' 'docker-commons':'1.8' 'docker-workflow':'1.9' 'durable-task':'1.13' 'email-ext':'2.58' 'external-monitor-job':'1.6' 'favorite':'2.3.0' 'ghprb':'1.33.1' 'git':'3.4.1' 'git-client':'2.4.6' 'git-server':'1.7' 'github':'1.26.1' 'github-api':'1.86' 'github-branch-source':'2.2.2' 'github-organization-folder':'1.6' 'gradle':'1.25' 'graphiteIntegrator':'1.2' 'handlebars':'1.1.1' 'hipchat':'1.0.0' 'hockeyapp':'1.2.2' 'htmlpublisher':'1.12' 'http-post':'1.2' 'http_request':'1.8.12' 'icon-shim':'2.0.3' 'ivy':'1.26' 'jackson2-api':'2.7.3' 'javadoc':'1.4' 'jobConfigHistory':'2.15' 'jquery-detached':'1.2.1' 'junit':'1.20' 'ldap':'1.14' 'lockable-resources':'2.0' 'mailer':'1.20' 'mapdb-api':'1.0.9.0' 'matrix-auth':'1.7' 'matrix-project':'1.7.1' 'maven-plugin':'2.13' 'metrics':'3.1.2.9' 'momentjs':'1.1.1' 'pam-auth':'1.3' 'performance':'2.0' 'pipeline-build-step':'2.5.1' 'pipeline-github-lib':'1.0' 'pipeline-graph-analysis':'1.3' 'pipeline-input-step':'2.5' 'pipeline-milestone-step':'1.1' 'pipeline-model-api':'1.0.2' 'pipeline-model-declarative-agent':'1.0.2' 'pipeline-model-definition':'1.0.2' 'pipeline-rest-api':'2.1' 'pipeline-stage-step':'2.2' 'pipeline-stage-tags-metadata':'1.0.2' 'pipeline-stage-view':'2.1' 'plain-credentials':'1.3' 'pubsub-light':'1.7' 's3':'0.10.10' 'scm-api':'2.2.0' 'script-security':'1.30' 'simple-theme-plugin':'0.3' 'sse-gateway':'1.15' 'ssh-agent':'1.13' 'ssh-credentials':'1.13' 'ssh-slaves':'1.20' 'structs':'1.9' 'subversion':'2.9' 'swarm':'2.2' 'timestamper':'1.8.7' 'token-macro':'2.0' 'variant':'1.1' 'versionnumber':'1.8.1' 'view-job-filters':'1.27' 'windows-slaves':'1.2' 'workflow-aggregator':'2.4' 'workflow-api':'2.12' 'workflow-basic-steps':'2.4' 'workflow-cps':'2.30' 'workflow-cps-global-lib':'2.7' 'workflow-durable-task-step':'2.9' 'workflow-job':'2.10' 'workflow-multibranch':'2.13' 'workflow-scm-step':'2.4' 'workflow-step-api':'2.9' 'workflow-support':'2.14' 'ws-cleanup':'0.30' Core: 2.60
The Symptom:
When using an enterprise GHE that is running slow (or I imagine, with a very fast jenkins instance, maybe even on production GH), a check for a Jenkinsfile in the branch events will say that one was not found, even though there is a Jenkinsfile in the PR's origin branch, and in the target branch. This seems to happen if you "slam" GH by creating a commit, branch, and PR all in one go (which people do with automated commits).
What I think is the cause:
As far as I can tell, GitHubSCMProbe is relying on the contents API to determine if a new branch or PR has a Jenkinsfile. When building merge PRs, it uses the merge refs with the contents API, but the merge refs aren't actually ready yet when GH sends out its webhooks. To prove this, I spun up a ruby sinatra app that listens for a PR webhook and immediately calls back to GH with the contents API. This reliably fails to find a ref (returns "No commit found for the ref"), unless you put a short sleep between when it receives the webhook, and when it calls out for content. You can find that here: https://github.com/SpencerMalone/test-repo if you want to play with it yourself.
This is probably something that GH needs to fix, so I've sent them a support ticket, but just incase they are unable to, or in case it takes an exceedingly long time, I've opened this.
I think in cases where we get a ref not found from the contents API while responding to branch events, there should be a short delay + retry.
- is blocked by
-
JENKINS-46174 Error cloning remote from PR at first try
- Open