New issue
Advanced search Search tips
Starred by 3 users

Issue metadata

Status: Released
Owner: ----
Closed: Sep 2016



Sign in to add a comment

Navigating up from diff while "Working" causes OrmDuplicateKeyException

Reported by org...@gmail.com, Sep 25 2016

Issue description

Affected Version: 2.13

What steps will reproduce the problem?
1. You need a slow server (I can't reproduce on gerrit-review)
2. Use the keyboard to open a file diff
3. While the Working label is still displayed, navigate up (u on the keyboard)

What is the expected output?
It should work

What do you see instead?
500 Server Error:
[2016-09-25 08:33:30,376] [HTTP-137] ERROR com.google.gerrit.httpd.restapi.RestApiServlet : Error in GET /review/changes/17875/revisions/83c6154deaeb8b16650fa6977b608e25ed126e0c/files?reviewed
com.google.gwtorm.server.OrmDuplicateKeyException: ACCOUNT_PATCH_REVIEWS
	at com.google.gerrit.server.schema.H2AccountPatchReviewStore.convertError(H2AccountPatchReviewStore.java:241)
	at com.google.gerrit.server.schema.H2AccountPatchReviewStore.markReviewed(H2AccountPatchReviewStore.java:179)
	at com.google.gerrit.server.change.Files$ListFiles.copy(Files.java:316)
	at com.google.gerrit.server.change.Files$ListFiles.reviewed(Files.java:240)
	at com.google.gerrit.server.change.Files$ListFiles.apply(Files.java:146)
	at com.google.gerrit.server.change.Files$ListFiles.apply(Files.java:92)
	at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:334)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286)
	at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276)
	at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181)
	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.gerrit.httpd.RequireSslFilter.doFilter(RequireSslFilter.java:77)
	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:122)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at com.google.gerrit.httpd.RequestMetricsFilter.doFilter(RequestMetricsFilter.java:60)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:136)
	at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:138)
	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:120)
	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135)
	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:499)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
	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)
Caused by: org.h2.jdbc.JdbcBatchUpdateException: Unique index or primary key violation: "PRIMARY_KEY_1 ON PUBLIC.ACCOUNT_PATCH_REVIEWS(ACCOUNT_ID, CHANGE_ID, PATCH_SET_ID, FILE_NAME) VALUES ( /* key:27 */ 1000001, 17875, 7, 'Modules/GWApp/Pkgs/Streaming/ParticipantEndPoint.h')"; SQL statement:
INSERT INTO ACCOUNT_PATCH_REVIEWS (ACCOUNT_ID, CHANGE_ID, PATCH_SET_ID, FILE_NAME) VALUES (?, ?, ?, ?) [23505-176]
	at org.h2.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:1199)
	at com.google.gerrit.server.schema.H2AccountPatchReviewStore.markReviewed(H2AccountPatchReviewStore.java:177)
	... 44 more


Please provide any additional information below.
Never happened to me with 2.12. Looks like a regression.
 
Project Member

Comment 1 by huga...@gmail.com, Sep 26 2016

Status: ChangeUnderReview (was: New)
https://gerrit-review.googlesource.com/#/c/87090/
Labels: FixedIn-2.13.2
Status: Submitted (was: ChangeUnderReview)
Status: Released (was: Submitted)

Sign in to add a comment