gitblit icon indicating copy to clipboard operation
gitblit copied to clipboard

MissingObjectException: Missing blob 0000000000000000000000000000000000000000

Open rnveach opened this issue 9 years ago • 5 comments

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.

rnveach avatar Oct 28 '16 12:10 rnveach

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:

  1. Create ticket with X commits.
  2. Push new commit to master.
  3. Push new commit to ticket. And then exception always happens when you load the ticket.

rnveach avatar Oct 28 '16 13:10 rnveach

How to repair this problem?

kingspider1971 avatar Mar 24 '21 08:03 kingspider1971

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?

flaix avatar Apr 14 '21 09:04 flaix

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.(ReflogPanel.java:71) at com.gitblit.wicket.pages.ReflogPage.(ReflogPage.java:38) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 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.processEvents(BookmarkablePageRequestTarget.java:234) at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279) 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:88) at com.gitblit.servlet.EnforceAuthenticationFilter.doFilter(EnforceAuthenticationFilter.java:99) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:88) at com.gitblit.servlet.ProxyFilter$1.doFilter(ProxyFilter.java:89) at com.gitblit.servlet.ProxyFilter.doFilter(ProxyFilter.java:82) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:88) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) 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(Thread.java:748) 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.DiffUtils$DiffStat.addPath(DiffUtils.java:169) at com.gitblit.utils.DiffStatFormatter.format(DiffStatFormatter.java:48) at com.gitblit.utils.JGitUtils.getFilesInCommit(JGitUtils.java:1053) 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.(ReflogPanel.java:71) at com.gitblit.wicket.pages.ReflogPage.(ReflogPage.java:38) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 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.processEvents(BookmarkablePageRequestTarget.java:234) at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279) 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:88) at com.gitblit.servlet.EnforceAuthenticationFilter.doFilter(EnforceAuthenticationFilter.java:99) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:88) at com.gitblit.servlet.ProxyFilter$1.doFilter(ProxyFilter.java:89) at com.gitblit.servlet.ProxyFilter.doFilter(ProxyFilter.java:82) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:88) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) 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(Thread.java:748) 2021-05-07 15:57:18 [WARN ] close() called when useCnt is already zero

kingspider1971 avatar May 07 '21 07:05 kingspider1971