Issue 438: Gerrit gives page not found when trying to display patchset
Status:  Released
Owner: ----
Closed:  Mar 2012
Reported by greboid, Feb 8, 2010
On attempting to display patchset a page not found is displayed the 
following appears in the error_log

[2010-02-08 23:29:01,070] ERROR 
com.google.gerrit.server.cache.SelfPopulatingCache : Cannot lookup 
com.google.gerrit.server.patch.PatchListKey@7a96bab3 in "diff"
net.sf.ehcache.CacheException: Could not fetch object for cache entry with 
key "com.google.gerrit.server.patch.PatchListKey@7a96bab3".                           
        at 
net.sf.ehcache.constructs.blocking.SelfPopulatingCache.get(SelfPopulatingCa
che.java:88)                                                               
        at 
com.google.gerrit.server.cache.SelfPopulatingCache.get(SelfPopulatingCache.
java:107)                                                                  
        at 
com.google.gerrit.server.patch.PatchListCacheImpl.get(PatchListCacheImpl.ja
va:95)                                                                     
        at 
com.google.gerrit.server.patch.PatchListCacheImpl.get(PatchListCacheImpl.ja
va:107)
        at 
com.google.gerrit.server.patch.PatchListCacheImpl.get(PatchListCacheImpl.ja
va:99)
        at 
com.google.gerrit.httpd.rpc.changedetail.PatchSetDetailFactory.call(PatchSe
tDetailFactory.java:83)
        at 
com.google.gerrit.httpd.rpc.changedetail.ChangeDetailFactory.loadCurrentPat
chSet(ChangeDetailFactory.java:188)
        at 
com.google.gerrit.httpd.rpc.changedetail.ChangeDetailFactory.call(ChangeDet
ailFactory.java:108)
        at 
com.google.gerrit.httpd.rpc.changedetail.ChangeDetailFactory.call(ChangeDet
ailFactory.java:53)
        at com.google.gerrit.httpd.rpc.Handler.to(Handler.java:65)
        at 
com.google.gerrit.httpd.rpc.changedetail.ChangeDetailServiceImpl.changeDeta
il(ChangeDetailServiceImpl.java:42)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:3
9)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
l.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
com.google.gwtjsonrpc.server.MethodHandle.invoke(MethodHandle.java:91)
        at 
com.google.gwtjsonrpc.server.JsonServlet.doService(JsonServlet.java:376)
        at 
com.google.gwtjsonrpc.server.JsonServlet.service(JsonServlet.java:268)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.jav
a:216)
        at 
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:
141)
        at 
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipe
line.java:93)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocat
ion.java:63)
        at 
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:1
34)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocat
ion.java:59)
        at 
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:1
34)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocat
ion.java:59)
        at 
com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.j
ava:76)
        at 
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:1
29)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocat
ion.java:59)
        at 
com.google.gerrit.httpd.RequestCleanupFilter.doFilter(RequestCleanupFilter.
java:54)
        at 
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:1
29)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocat
ion.java:59)
        at 
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:1
34)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocat
ion.java:59)
        at 
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipel
ine.java:122)
        at 
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:110)
        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandle
r.java:1187)
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:425)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.jav
a:931)
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java
:867)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:11
7)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:
113)
        at org.eclipse.jetty.server.Server.handle(Server.java:334)
        at 
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:5
59)
        at 
org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnecti
on.java:1007)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:747)
        at 
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:209)
        at 
org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406)
        at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.ja
va:462)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:
436)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ArrayIndexOutOfBoundsException: Array index out of 
range: 2
        at org.eclipse.jgit.util.IntList.get(IntList.java:75)
        at com.google.gerrit.server.patch.Text.getLineEnd(Text.java:83)
        at com.google.gerrit.server.patch.Text.getLines(Text.java:64)
        at com.google.gerrit.server.patch.CharText.<init>(CharText.java:23)
        at 
com.google.gerrit.server.patch.PatchListCacheImpl.newEntry(PatchListCacheIm
pl.java:224)
        at 
com.google.gerrit.server.patch.PatchListCacheImpl.readPatchList(PatchListCa
cheImpl.java:183)
        at 
com.google.gerrit.server.patch.PatchListCacheImpl.compute(PatchListCacheImp
l.java:114)
        at 
com.google.gerrit.server.patch.PatchListCacheImpl.access$000(PatchListCache
Impl.java:60)
        at 
com.google.gerrit.server.patch.PatchListCacheImpl$2.createEntry(PatchListCa
cheImpl.java:89)
        at 
com.google.gerrit.server.patch.PatchListCacheImpl$2.createEntry(PatchListCa
cheImpl.java:86)
        at 
com.google.gerrit.server.cache.SelfPopulatingCache$1.createEntry(SelfPopula
tingCache.java:60)
        at 
net.sf.ehcache.constructs.blocking.SelfPopulatingCache.get(SelfPopulatingCa
che.java:72)
        ... 52 more


Feb 10, 2010
#1 sop@google.com
Without digging into this too deep, it looks like a bug from current
master branch, caused by a word change in a 1 line text file (or a
symbolic link changing target).

I'll try to test that case, it seems like it should trip this failure.

Can you give any more detail on the particular file contents in question?
Status: Accepted
Labels: Milestone-2.1.2
Feb 13, 2010
#3 sop@google.com
This is caused by a submodule gitlink.  They aren't
files, but we somehow treated them as such and did a
content difference over the empty file contents.

Fixed by change I966de5e6623d32201c6bbd42f388c875a8fc209e.
Status: Fixed
Labels: -Milestone-2.1.2 FixedIn-2.1.2
Feb 13, 2010
#4 sop@google.com
 Issue 444  has been merged into this issue.
Mar 27, 2012
#5 sop@google.com
(No comment was entered for this change.)
Status: Released