GitHub VcsRootVcsException when PR is created

I get sporadic exceptions when TC is triggered to build a new GitHub pull request. I'm using:

  • Team City 2017.1.3
  • TeamCity Commit Hooks 44
  • GitHub Enterprise 2.10.6

The error is:

jetbrains.buildServer.vcs.VcsRootVcsException: Error collecting changes for VCS repository '"Project Repo" {instance id=286, parent internal id=5, parent id=ProjectRepo, description: "https://xxx/Org/repo#refs/heads/master"}'

Cannot find revision 6f9314ca2ae52d22da033c3bdcd263fc8ccd60ca in branch refs/pull/5/merge in VCS root Project Repo

This looks to be a timing issue. If I resend the webhook call from GitHub then Team City builds successfully. Subsequent commits to the branch trigger the PR build without issue.

Stack trace is

at jetbrains.buildServer.buildTriggers.vcs.ConnectionStateReporterImpl.reportConnectionFailed(ConnectionStateReporterImpl.java:2)
at jetbrains.buildServer.buildTriggers.vcs.ConnectionStateReporterImpl.reportConnectionFailed(ConnectionStateReporterImpl.java:32)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader$RunLoadChanges.run(VcsRootChangesLoader.java:41)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:71)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader.loadChanges(VcsRootChangesLoader.java:29)
at jetbrains.buildServer.vcs.impl.VcsChangesFetcher$LoadChangesForRoot.run(VcsChangesFetcher.java:8)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl$ImmediateFutureExecService$1.call(VcsChangesLoaderImpl.java:2)
at jetbrains.buildServer.serverSide.impl.ImmediateFuture.get(ImmediateFuture.java:59)
at jetbrains.buildServer.serverSide.impl.ImmediateFuture.get(ImmediateFuture.java:68)
at jetbrains.buildServer.vcs.impl.VcsChangesSyncFetcher.waitForTasksToComplete(VcsChangesSyncFetcher.java:48)
at jetbrains.buildServer.vcs.impl.VcsChangesSyncFetcher.doLoadChanges(VcsChangesSyncFetcher.java:8)
at jetbrains.buildServer.vcs.impl.VcsChangesSyncFetcher.tryLoadChanges(VcsChangesSyncFetcher.java:6)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl.tryLoadChanges(VcsChangesLoaderImpl.java:8)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$CollectChangesAction$1.run(VcsModificationChecker.java:14)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:71)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$CollectChangesAction.run(VcsModificationChecker.java:1)
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:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: jetbrains.buildServer.vcs.VcsException: Cannot find revision 6f9314ca2ae52d22da033c3bdcd263fc8ccd60ca in branch refs/pull/5/merge in VCS root Project Repo {internal id=286}
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.ensureRepositoryStateLoaded(GitCollectChangesPolicy.java:174)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.ensureRepositoryStateLoadedFor(GitCollectChangesPolicy.java:129)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.lambda$collectChanges$0(GitCollectChangesPolicy.java:84)
at jetbrains.buildServer.buildTriggers.vcs.git.RepositoryManagerImpl.runWithDisabledRemove(RepositoryManagerImpl.java:254)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.collectChanges(GitCollectChangesPolicy.java:78)
at jetbrains.vcs.api.services.collectChanges.CollectRepositoryChangesPolicyFactory$3.collectChanges(CollectRepositoryChangesPolicyFactory.java:6)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceProvider$1.collectChanges(CollectChangesServiceProvider.java:8)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges$CollectChangesForCheckoutRules.call(LoadChanges.java:1)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges$CollectChangesForCheckoutRules.call(LoadChanges.java:11)
at jetbrains.buildServer.vcs.VcsOperationProgressProviderImpl.runWithProgress(VcsOperationProgressProviderImpl.java:27)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChangesWithProgress(LoadChanges.java:61)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChangesForCheckoutRules(LoadChanges.java:31)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChangesByCombinedRule(LoadChanges.java:58)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChanges(LoadChanges.java:8)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader$RunLoadChanges.run(VcsRootChangesLoader.java:7)
... 18 more
Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing unknown 6f9314ca2ae52d22da033c3bdcd263fc8ccd60ca
at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:148)
at org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:229)
at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:840)
at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:753)
at jetbrains.buildServer.buildTriggers.vcs.git.CommitLoaderImpl.getCommit(CommitLoaderImpl.java:110)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.ensureRepositoryStateLoaded(GitCollectChangesPolicy.java:169)
... 32 more
jetbrains.buildServer.vcs.VcsException: Cannot find revision 6f9314ca2ae52d22da033c3bdcd263fc8ccd60ca in branch refs/pull/5/merge in VCS root Project Repo {internal id=286}
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.ensureRepositoryStateLoaded(GitCollectChangesPolicy.java:174)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.ensureRepositoryStateLoadedFor(GitCollectChangesPolicy.java:129)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.lambda$collectChanges$0(GitCollectChangesPolicy.java:84)
at jetbrains.buildServer.buildTriggers.vcs.git.RepositoryManagerImpl.runWithDisabledRemove(RepositoryManagerImpl.java:254)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.collectChanges(GitCollectChangesPolicy.java:78)
at jetbrains.vcs.api.services.collectChanges.CollectRepositoryChangesPolicyFactory$3.collectChanges(CollectRepositoryChangesPolicyFactory.java:6)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceProvider$1.collectChanges(CollectChangesServiceProvider.java:8)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges$CollectChangesForCheckoutRules.call(LoadChanges.java:1)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges$CollectChangesForCheckoutRules.call(LoadChanges.java:11)
at jetbrains.buildServer.vcs.VcsOperationProgressProviderImpl.runWithProgress(VcsOperationProgressProviderImpl.java:27)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChangesWithProgress(LoadChanges.java:61)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChangesForCheckoutRules(LoadChanges.java:31)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChangesByCombinedRule(LoadChanges.java:58)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChanges(LoadChanges.java:8)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader$RunLoadChanges.run(VcsRootChangesLoader.java:7)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:71)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader.loadChanges(VcsRootChangesLoader.java:29)
at jetbrains.buildServer.vcs.impl.VcsChangesFetcher$LoadChangesForRoot.run(VcsChangesFetcher.java:8)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl$ImmediateFutureExecService$1.call(VcsChangesLoaderImpl.java:2)
at jetbrains.buildServer.serverSide.impl.ImmediateFuture.get(ImmediateFuture.java:59)
at jetbrains.buildServer.serverSide.impl.ImmediateFuture.get(ImmediateFuture.java:68)
at jetbrains.buildServer.vcs.impl.VcsChangesSyncFetcher.waitForTasksToComplete(VcsChangesSyncFetcher.java:48)
at jetbrains.buildServer.vcs.impl.VcsChangesSyncFetcher.doLoadChanges(VcsChangesSyncFetcher.java:8)
at jetbrains.buildServer.vcs.impl.VcsChangesSyncFetcher.tryLoadChanges(VcsChangesSyncFetcher.java:6)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl.tryLoadChanges(VcsChangesLoaderImpl.java:8)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$CollectChangesAction$1.run(VcsModificationChecker.java:14)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:71)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$CollectChangesAction.run(VcsModificationChecker.java:1)
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:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing unknown 6f9314ca2ae52d22da033c3bdcd263fc8ccd60ca
at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:148)
at org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:229)
at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:840)
at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:753)
at jetbrains.buildServer.buildTriggers.vcs.git.CommitLoaderImpl.getCommit(CommitLoaderImpl.java:110)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.ensureRepositoryStateLoaded(GitCollectChangesPolicy.java:169)
... 32 more
org.eclipse.jgit.errors.MissingObjectException: Missing unknown 6f9314ca2ae52d22da033c3bdcd263fc8ccd60ca
at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:148)
at org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:229)
at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:840)
at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:753)
at jetbrains.buildServer.buildTriggers.vcs.git.CommitLoaderImpl.getCommit(CommitLoaderImpl.java:110)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.ensureRepositoryStateLoaded(GitCollectChangesPolicy.java:169)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.ensureRepositoryStateLoadedFor(GitCollectChangesPolicy.java:129)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.lambda$collectChanges$0(GitCollectChangesPolicy.java:84)
at jetbrains.buildServer.buildTriggers.vcs.git.RepositoryManagerImpl.runWithDisabledRemove(RepositoryManagerImpl.java:254)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCollectChangesPolicy.collectChanges(GitCollectChangesPolicy.java:78)
at jetbrains.vcs.api.services.collectChanges.CollectRepositoryChangesPolicyFactory$3.collectChanges(CollectRepositoryChangesPolicyFactory.java:6)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceProvider$1.collectChanges(CollectChangesServiceProvider.java:8)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges$CollectChangesForCheckoutRules.call(LoadChanges.java:1)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges$CollectChangesForCheckoutRules.call(LoadChanges.java:11)
at jetbrains.buildServer.vcs.VcsOperationProgressProviderImpl.runWithProgress(VcsOperationProgressProviderImpl.java:27)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChangesWithProgress(LoadChanges.java:61)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChangesForCheckoutRules(LoadChanges.java:31)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChangesByCombinedRule(LoadChanges.java:58)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChanges(LoadChanges.java:8)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader$RunLoadChanges.run(VcsRootChangesLoader.java:7)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:71)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader.loadChanges(VcsRootChangesLoader.java:29)
at jetbrains.buildServer.vcs.impl.VcsChangesFetcher$LoadChangesForRoot.run(VcsChangesFetcher.java:8)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl$ImmediateFutureExecService$1.call(VcsChangesLoaderImpl.java:2)
at jetbrains.buildServer.serverSide.impl.ImmediateFuture.get(ImmediateFuture.java:59)
at jetbrains.buildServer.serverSide.impl.ImmediateFuture.get(ImmediateFuture.java:68)
at jetbrains.buildServer.vcs.impl.VcsChangesSyncFetcher.waitForTasksToComplete(VcsChangesSyncFetcher.java:48)
at jetbrains.buildServer.vcs.impl.VcsChangesSyncFetcher.doLoadChanges(VcsChangesSyncFetcher.java:8)
at jetbrains.buildServer.vcs.impl.VcsChangesSyncFetcher.tryLoadChanges(VcsChangesSyncFetcher.java:6)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl.tryLoadChanges(VcsChangesLoaderImpl.java:8)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$CollectChangesAction$1.run(VcsModificationChecker.java:14)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:71)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$CollectChangesAction.run(VcsModificationChecker.java:1)
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:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

 

0
1 comment

Hi Richard,

it is a known issue: https://youtrack.jetbrains.com/issue/TW-45151. It happens because Github updates the revisions of the refs/pull/*/merge branches on some internal events. TeamCity detected one revision in the refs/pull/5/merge branch, tried to collect changes up-to this revision, but the commit is gone, so TeamCity throws an error. The only workaround at the moment is to exclude refs/pull/*/merge branches from a branch specification.

0

Please sign in to leave a comment.