gitblit
gitblit copied to clipboard
MissingObjectException: Missing blob 0000000000000000000000000000000000000000
This happens when trying to view a ticket I created and happens everytime I open that ticket. Also happened when pushing a change to said ticket.
org.eclipse.jgit.errors.MissingObjectException: Missing blob 0000000000000000000000000000000000000000
at org.eclipse.jgit.internal.storage.file.WindowCursor.getObjectSize(WindowCursor.java:167)
at com.gitblit.models.PathModel$PathChangeModel.from(PathModel.java:178)
at com.gitblit.utils.JGitUtils.getFilesInRange(JGitUtils.java:1204)
at com.gitblit.utils.JGitUtils.getFilesInRange(JGitUtils.java:1170)
at com.gitblit.wicket.pages.TicketPage.createPatchsetPanel(TicketPage.java:1285)
at com.gitblit.wicket.pages.TicketPage.<init>(TicketPage.java:836)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188)
at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:89)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:305)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.respond(BookmarkablePageRequestTarget.java:261)
at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:105)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1287)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.gitblit.servlet.EnforceAuthenticationFilter.doFilter(EnforceAuthenticationFilter.java:104)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.gitblit.servlet.ProxyFilter$1.doFilter(ProxyFilter.java:87)
at com.gitblit.servlet.ProxyFilter.doFilter(ProxyFilter.java:90)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:119)
at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133)
at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130)
at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Unknown Source)
Note: Line numbers may not match up exactly as I am playing with the source. No code was changed, just formatting applied.
I think the issue centers around having an open ticket and changing master directly, and then adding a new commit to the ticket but not rebasing it off master the new master.
Some steps that I got it to reproduce:
- Create ticket with X commits.
- Push new commit to master.
- Push new commit to ticket. And then exception always happens when you load the ticket.
How to repair this problem?
So far I have not reproduced this problem. What ticket backend is used? Does anyone have a repository that could be attached to this issue that demonstrates the problem?
1. When click project summary tab, the backend outputs: 2021-05-07 15:46:42 [WARN ] close() called when useCnt is already zero 2021-05-07 15:48:39 [WARN ] close() called when useCnt is already zero 2021-05-07 15:50:39 [WARN ] close() called when useCnt is already zero 2021-05-07 15:52:39 [WARN ] close() called when useCnt is already zero 2021-05-07 15:54:39 [WARN ] close() called when useCnt is already zero 2021-05-07 15:55:31 [WARN ] close() called when useCnt is already zero 2021-05-07 15:55:35 [WARN ] close() called when useCnt is already zero 2021-05-07 15:55:37 [WARN ] close() called when useCnt is already zero 2021-05-07 15:55:37 [WARN ] close() called when useCnt is already zero 2021-05-07 15:55:37 [WARN ] close() called when useCnt is already zero 2021-05-07 15:55:37 [WARN ] close() called when useCnt is already zero 2021-05-07 15:55:37 [WARN ] close() called when useCnt is already zero 2021-05-07 15:55:37 [WARN ] close() called when useCnt is already zero 2021-05-07 15:55:37 [WARN ] close() called when useCnt is already zero 2021-05-07 15:55:37 [WARN ] close() called when useCnt is already zero 2021-05-07 15:55:37 [WARN ] close() called when useCnt is already zero 2021-05-07 15:55:37 [WARN ] close() called when useCnt is already zero
2. When click project reflog tab, the backend outputs:
org.eclipse.jgit.errors.MissingObjectException: Missing blob 0000000000000000000000000000000000000000
at org.eclipse.jgit.internal.storage.file.WindowCursor.getObjectSize(WindowCursor.java:179)
at com.gitblit.models.PathModel$PathChangeModel.from(PathModel.java:181)
at com.gitblit.utils.JGitUtils.getFilesInCommit(JGitUtils.java:1049)
at com.gitblit.utils.JGitUtils.getFilesInCommit(JGitUtils.java:986)
at com.gitblit.utils.RefLogUtils.getRefLog(RefLogUtils.java:467)
at com.gitblit.utils.RefLogUtils.getRefLog(RefLogUtils.java:417)
at com.gitblit.utils.RefLogUtils.getLogByRef(RefLogUtils.java:538)
at com.gitblit.wicket.panels.ReflogPanel.