I have been researching this issue for few days without luck. I found many posts reporting similar issues but not with Gerrit code review.
The case is that we have a repo which contains many branches. Only one branch (dev) show this problem.
org.eclipse.jgit.errors.MissingObjectException: Missing unknown 5f3190e131541cec4ef7176262eaf4a03c4a4e6c
at com.google.gerrit.server.git.MergeOp.integrateIntoHistory(MergeOp.java:497)
at com.google.gerrit.server.git.MergeOp.merge(MergeOp.java:433)
at com.google.gerrit.server.change.Submit.apply(Submit.java:225)
at com.google.gerrit.server.change.Submit.apply(Submit.java:83)
at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:341)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286)
at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276)
at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181)
at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
To reproduce the error just do a change. Commit and push to gerrit refs/for/dev
. Once I click on Submit
in Gerrit I get the above error.
The revisions on the server are as follows:
- Gerrit Code Review (2.13.1)
- Git-2.1.0
- Java 1.7.0_71
Running git fsck
on the server side return Ok.
Running git show 5f3190e131541cec4ef7176262eaf4a03c4a4e6c
returns
fatal: bad object 5f3190e131541cec4ef7176262eaf4a03c4a4e6c
Changing the project preference in Gerrit from Merge if necessary
to Rebase if necessary
got this exception.
Caused by: com.google.gerrit.server.git.UpdateException: org.eclipse.jgit.errors.MissingObjectException: Missing unknown 5f3190e131541cec4ef7176262eaf4a03c4a4e6c
at com.google.gerrit.server.git.BatchUpdate.executeUpdateRepo(BatchUpdate.java:673)
at com.google.gerrit.server.git.BatchUpdate.execute(BatchUpdate.java:400)
at com.google.gerrit.server.git.MergeOp.integrateIntoHistory(MergeOp.java:478)
... 43 more
Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing unknown 5f3190e131541cec4ef7176262eaf4a03c4a4e6c
at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:158)
at org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:227)
at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:859)
at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:772)
at com.google.gerrit.server.git.CodeReviewCommit$CodeReviewRevWalk.parseCommit(CodeReviewCommit.java:110)
at com.google.gerrit.server.git.SubmoduleOp.updateSubmodule(SubmoduleOp.java:461)
at com.google.gerrit.server.git.SubmoduleOp.composeGitlinksCommit(SubmoduleOp.java:369)
at com.google.gerrit.server.git.SubmoduleOp$GitlinkOp.updateRepo(SubmoduleOp.java:85)
at com.google.gerrit.server.git.BatchUpdate.executeUpdateRepo(BatchUpdate.java:661)
... 45 more
It is worth mentioning that the hash 5f3190e131541cec4ef7176262eaf4a03c4a4e6c
does not show anywhere on the Gerrit code review page (only in the error message). Any new commit will cause this error.