We have run into a bug using the File Hook plugin, when creating branches locally and trying to push them to the Bitbucket server.
At the time of the push, the local UI shows the following error:
$ git push origin test-branch
Total 0 (delta 0), reused 0 (delta 0)
remote: Communication breakdown with Bitbucket.
To https://xxx/scm/dl/test.git
! [remote rejected] test-branch -> test-branch (pre-receive hook declined)
error: failed to push some refs to 'https://xxx@xxx/scm/dl/test.git'
The server logs show the following error (stacktrace severely trimmed to due Atlassian posting rules):
com.atlassian.stash.internal.plugin.legacy.CompositeRepositoryHook.preUpdate (org.christiangalsterer.stash-filehooks-plugin:filename-hook)
com.atlassian.bitbucket.commit.NoSuchCommitException: Commit '0000000000000000000000000000000000000000' does not exist in repository 'test'.
at com.atlassian.bitbucket.scm.git.command.GitCommandExitHandler.newNoSuchCommitException(GitCommandExitHandler.java:167)
Disabling the File Hooks plugin enables us to push the new branches but this is of course not ideal.
We are running Bitbucket 5.0.4 (with plans to upgrade to latest soon) and File Hooks plugin 3.0.0.
Anyone aware of plans to fix this issue?
Regards,
Nicolas
No, we had to disable the hook in hopes that a fix was forthcoming. We will have to look at alternatives at this point.
Thanks for gettting back. This is disencouraging, but I have emailed Christian Galsterer about the matter. Hoping for a reply and hopefully a fix from him.
Please have him contribute to this discussion if he can, or if there is already another official thread on this issue, please link to it.
Regards,
Hi!
Has this thread been resolved?
Because I have found the same stacktrace
But it is not File Hooks plugin.
Thank you
No resolution that I'm aware of. Mr. Galsterer have not replied to me. From what I can see in the commit log of the File Hooks plugin the last change from July 23 might be related to this issue, but no release yet.
This condition is helped me.:)
if (refChange.getFromHash().equals("0000000000000000000000000000000000000000")) {
request = new CommitsBetweenRequest.Builder(repository)
.include(refChange.getToHash())
.build();
} else {
request = new CommitsBetweenRequest.Builder(repositoryHookRequest.getRepository())
.exclude(refChange.getFromHash())
.include(refChange.getToHash())
.build();
}
A new version 3.0.1 is now available in the Atlassian Marketplace containing a fix for this.
Thanks!:)
This issue is back on version 3.3.2. Here is the call-stack :
2018-10-29 17:19:07,808 WARN [hook-callback:thread-1] <username> ... <IP> SSH - git-receive-pack '<project>/<repository>' c.a.s.i.h.r.DefaultRepositoryHookService [<project>/<repository>[556]] Error calling com.atlassian.stash.internal.plugin.legacy.CompositeRepositoryHook.preUpdate (org.christiangalsterer.stash-filehooks-plugin:filesize-hook)
com.atlassian.bitbucket.commit.NoSuchCommitException: Commit '0000000000000000000000000000000000000000' does not exist in repository '<repository>'.
at com.atlassian.bitbucket.scm.git.command.GitCommandExitHandler.newNoSuchCommitException(GitCommandExitHandler.java:167)
at com.atlassian.bitbucket.scm.git.command.GitCommandExitHandler.evaluateStdErr(GitCommandExitHandler.java:70)
at com.atlassian.bitbucket.scm.git.command.GitCommandExitHandler.onError(GitCommandExitHandler.java:197)
at com.atlassian.stash.internal.scm.git.command.revlist.RevCoreExitHandler.onError(RevCoreExitHandler.java:52)
at com.atlassian.bitbucket.scm.DefaultCommandExitHandler.onExit(DefaultCommandExitHandler.java:31)
at com.atlassian.bitbucket.scm.BaseCommand.callExitHandler(BaseCommand.java:153)
at com.atlassian.bitbucket.scm.BaseCommand$CommandFuture.internalGet(BaseCommand.java:287)
at com.atlassian.bitbucket.scm.BaseCommand$CommandFuture.get(BaseCommand.java:251)
at com.atlassian.bitbucket.scm.BaseCommand.call(BaseCommand.java:87)
at org.christiangalsterer.stash.filehooks.plugin.hook.ChangesetServiceImpl.getCommitsBetween(ChangesetServiceImpl.java:86)
at org.christiangalsterer.stash.filehooks.plugin.hook.FileSizeHook.onReceive(FileSizeHook.java:68)
at com.atlassian.stash.internal.plugin.legacy.PreReceiveRepositoryHookAdapter.preUpdate(PreReceiveRepositoryHookAdapter.java:29)
at com.atlassian.stash.internal.plugin.legacy.CompositeRepositoryHook.lambda$preUpdate$2(CompositeRepositoryHook.java:76)
at com.atlassian.stash.internal.plugin.legacy.CompositeRepositoryHook.handlingExceptions(CompositeRepositoryHook.java:92)
at com.atlassian.stash.internal.plugin.legacy.CompositeRepositoryHook.preUpdate(CompositeRepositoryHook.java:75)
at com.atlassian.stash.internal.hook.repository.DefaultRepositoryHookService.preUpdate(DefaultRepositoryHookService.java:860)
at com.atlassian.stash.internal.hook.repository.DefaultRepositoryHookService.lambda$preUpdate$4(DefaultRepositoryHookService.java:458)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
at com.atlassian.stash.internal.hook.repository.DefaultRepositoryHookService.preUpdate(DefaultRepositoryHookService.java:437)
at com.atlassian.stash.internal.hook.DefaultBuiltInHookHandlerFactory.lambda$preReceive$0(DefaultBuiltInHookHandlerFactory.java:36)
at com.atlassian.stash.internal.hook.DefaultHookService.doHandleRequest(DefaultHookService.java:299)
at com.atlassian.stash.internal.hook.DefaultHookService.handleRequest(DefaultHookService.java:285)
at com.atlassian.stash.internal.hook.DefaultHookService.handleRawRequest(DefaultHookService.java:219)
at com.atlassian.stash.internal.hook.DefaultHookService$1.lambda$run$0(DefaultHookService.java:186)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.lang.Thread.run(Thread.java:745)
... 26 frames trimmed
2018-10-29 17:19:07,809 INFO [hook-callback:thread-1] <username> ... <IP> SSH - git-receive-pack '<project>/<repository>' c.a.s.i.h.r.DefaultRepositoryHookService [<project>/<repository>[556]] hook 'filesize-hook' vetoed the push request
I tried to push a tag.