Affected Version: 2.11.4
What steps will reproduce the problem?
1. Push a huge change to Gerrit (removing a 200MB file, adding a couple 70MB files and some more binary files in the few MB range, and a diff of 159 files and a few thousands lines – you don't need to lecture me on how it's not a good idea to submit these large binary files in Git, I'm trying to fix that now).
2. Gerrit accepts the change
3. Navigate to the review (e.g. http://gerrit/#/c/4067/
What is the expected output? What do you see instead?
The Gerrit UI craps out with "Code Review - Error
500 Internal server error"
Instead Gerrit should either not accept the commit for review and reject it at the time it was being pushed, or it should accept it without throwing a 500 back.
Please provide any additional information below.
[2015-11-11 14:34:12,320] ERROR com.google.gerrit.httpd.restapi.RestApiServlet : Error in GET /changes/4067/detail?O=404 [9/340]
com.google.common.util.concurrent.UncheckedExecutionException: org.eclipse.jgit.errors.LargeObjectException: d452b1b7b822e136f323b1b52655c6e8903ac241 exceeds size limit
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)
at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
at com.google.gerrit.server.cache.h2.H2CacheImpl.get(H2CacheImpl.java:113)
at com.google.gerrit.server.change.MergeabilityCacheImpl.get(MergeabilityCacheImpl.java:297)
at com.google.gerrit.server.query.change.ChangeData.isMergeable(ChangeData.java:635)
at com.google.gerrit.server.change.ChangeJson.toChangeInfo(ChangeJson.java:367)
at com.google.gerrit.server.change.ChangeJson.format(ChangeJson.java:238)
at com.google.gerrit.server.change.ChangeJson.format(ChangeJson.java:227)
at com.google.gerrit.server.change.ChangeJson.format(ChangeJson.java:206)
at com.google.gerrit.server.change.GetChange.apply(GetChange.java:46)
at com.google.gerrit.server.change.GetDetail.apply(GetDetail.java:50)
at com.google.gerrit.server.change.GetDetail.apply(GetDetail.java:26)
at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:324)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287)
at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277)
at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182)
at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
at com.google.gerrit.httpd.GetUserFilter.doFilter(GetUserFilter.java:82)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:73)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.google.gerrit.httpd.RunAsFilter.doFilter(RunAsFilter.java:117)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:64)
at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:57)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.google.gerrit.httpd.RequestContextFilter.doFilter(RequestContextFilter.java:75)
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.session.SessionHandler.doHandle(SessionHandler.java:221)
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:497)
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:745)
Caused by: org.eclipse.jgit.errors.LargeObjectException: d452b1b7b822e136f323b1b52655c6e8903ac241 exceeds size limit
at org.eclipse.jgit.internal.storage.file.LargePackedWholeObject.getCachedBytes(LargePackedWholeObject.java:98)
at org.eclipse.jgit.merge.ResolveMerger.getRawText(ResolveMerger.java:853)
at org.eclipse.jgit.merge.ResolveMerger.contentMerge(ResolveMerger.java:666)
at org.eclipse.jgit.merge.ResolveMerger.processEntry(ResolveMerger.java:611)
at org.eclipse.jgit.merge.ResolveMerger.mergeTreeWalk(ResolveMerger.java:1072)
at org.eclipse.jgit.merge.ResolveMerger.mergeTrees(ResolveMerger.java:1022)
at org.eclipse.jgit.merge.ResolveMerger.mergeImpl(ResolveMerger.java:304)
at org.eclipse.jgit.merge.Merger.merge(Merger.java:202)
at org.eclipse.jgit.merge.Merger.merge(Merger.java:155)
at org.eclipse.jgit.merge.ThreeWayMerger.merge(ThreeWayMerger.java:114)
at com.google.gerrit.server.git.MergeUtil.canCherryPick(MergeUtil.java:445)
at com.google.gerrit.server.git.strategy.RebaseIfNecessary.dryRun(RebaseIfNecessary.java:178)
at com.google.gerrit.server.change.MergeabilityCacheImpl$Loader.load(MergeabilityCacheImpl.java:239)
at com.google.gerrit.server.change.MergeabilityCacheImpl$Loader.load(MergeabilityCacheImpl.java:210)
at com.google.gerrit.server.cache.h2.H2CacheImpl$Loader.load(H2CacheImpl.java:229)
at com.google.gerrit.server.cache.h2.H2CacheImpl$Loader.load(H2CacheImpl.java:209)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
... 52 more