-
Bug
-
Resolution: Incomplete
-
Minor
We are using Jenkins in conjunction with GitHub. Sometimes the tests are failing with the following exception:
Sep 10, 2015 7:19:35 AM hudson.model.AbstractBuild$AbstractBuildExecution reportError WARNING: Publisher 'Set build status on GitHub commit' aborted due to exception: java.io.IOException: {"message":"Validation Failed","errors":[{"resource":"Status","code":"custom","message":"This SHA and context has reached the maximum number of statuses."}],"documentation_url":"https://developer.github.com/v3/repos/statuses/#create-a-status"} at org.kohsuke.github.Requester.handleApiError(Requester.java:493) at org.kohsuke.github.Requester._to(Requester.java:245) at org.kohsuke.github.Requester.to(Requester.java:191) at org.kohsuke.github.GHRepository.createCommitStatus(GHRepository.java:774) at com.cloudbees.jenkins.GitHubCommitNotifier.updateCommitStatus(GitHubCommitNotifier.java:127) at com.cloudbees.jenkins.GitHubCommitNotifier.perform(GitHubCommitNotifier.java:84) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
The error message seems to report the error details sent back by the GitHub RPC endpoint, stating that Jenkins tried to update more than 1000 times the statuses associated to a given SHA or “context”. Since we have a hand of different tests, it is strange to hit that 1000 limit.
How to more precisely diagnose this (non-fatal) error and figure out what is causing that limit to be hit?
How many server-configs do you have in your global setup?
I see a cycle in a code:
for (GitHubRepositoryName name : GitHubRepositoryNameContributor.parseAssociatedNames(build.getProject()))
which means that status will be updated with each config. (Originally it was done to try to find creds with repo:status scope).
So maybe its a time to change this behaviour