My favorites | Sign in
Project Home Downloads Wiki Issues Source
New issue   Search
for
  Advanced search   Search tips   Subscriptions
Issue 3668: Gerrit accepts commits that are too large and then craps out on them
1 person starred this issue and may be notified of changes. Back to list
Status:  New
Owner:  ----


Sign in to add a comment
 
Reported by tsuna...@gmail.com, Nov 11, 2015
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
Sign in to add a comment

Powered by Google Project Hosting