My favorites | Sign in
Project Home Downloads Wiki Issues Source
New issue   Search
for
  Advanced search   Search tips   Subscriptions
Issue 2344: Exception in plugin lead to inconsistent state
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 florent....@intersec.com, Dec 15, 2013
************************************************************
***** NOTE: THIS BUG TRACKER IS FOR GERRIT CODE REVIEW *****
***** DO NOT SUBMIT BUGS FOR CHROME, ANDROID, INTERNAL *****
***** ISSUES WITH YOUR COMPANY'S GERRIT SETUP, ETC.    *****
***** THOSE ISSUE BELONG IN DIFFERENT ISSUE TRACKERS!  *****
************************************************************

Affected Version: 2.8

After trying to rebase a change using the "rebase change" button, we got an internal error with the following logs:

[2013-12-15 19:39:48,024] WARN  /r : Error in rebaseChange
java.lang.NoSuchMethodError: com.google.gerrit.extensions.events.GitReferenceUpdatedListener$Event.getUpdates()Ljava/u
til/List;
        at com.googlesource.gerrit.plugins.reviewnotes.RefUpdateListener.createReviewNotes(RefUpdateListener.java:122)
        at com.googlesource.gerrit.plugins.reviewnotes.RefUpdateListener.access$000(RefUpdateListener.java:38)
        at com.googlesource.gerrit.plugins.reviewnotes.RefUpdateListener$1.run(RefUpdateListener.java:66)
        at com.googlesource.gerrit.plugins.reviewnotes.RefUpdateListener.onGitReferenceUpdated(RefUpdateListener.java:
92)
        at com.google.gerrit.server.extensions.events.GitReferenceUpdated.fire(GitReferenceUpdated.java:59)
        at com.google.gerrit.server.extensions.events.GitReferenceUpdated.fire(GitReferenceUpdated.java:48)
        at com.google.gerrit.server.change.PatchSetInserter.insert(PatchSetInserter.java:228)
        at com.google.gerrit.server.changedetail.RebaseChange.rebase(RebaseChange.java:313)
        at com.google.gerrit.server.changedetail.RebaseChange.rebase(RebaseChange.java:134)
        at com.google.gerrit.httpd.rpc.changedetail.RebaseChangeHandler.call(RebaseChangeHandler.java:65)
        at com.google.gerrit.httpd.rpc.changedetail.RebaseChangeHandler.call(RebaseChangeHandler.java:37)
        at com.google.gerrit.httpd.rpc.Handler.to(Handler.java:65)
        at com.google.gerrit.httpd.rpc.changedetail.ChangeManageServiceImpl.rebaseChange(ChangeManageServiceImpl.java:45)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at com.google.gwtjsonrpc.server.MethodHandle.invoke(MethodHandle.java:91)
        at com.google.gwtjsonrpc.server.JsonServlet.doService(JsonServlet.java:379)
        at com.google.gwtjsonrpc.server.JsonServlet.service(JsonServlet.java:265)
        at com.google.gerrit.httpd.rpc.GerritJsonServlet.service(GerritJsonServlet.java:121)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:278)
        at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:268)
        at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:180)
        at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
        at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:70)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.RunAsFilter.doFilter(RunAsFilter.java:113)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.RequireSslFilter.doFilter(RequireSslFilter.java:68)
        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:120)
        at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:132)
        at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:129)
        at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:206)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:129)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:365)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
        at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:937)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:998)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:636)

Then, when pushing manually the change, manually rebased, we got the following exception:
[2013-12-15 19:40:50,640] ERROR com.google.gerrit.sshd.BaseCommand : Internal server error (user romain account 1000010) during git-upload-pack '/mmsx'
org.apache.sshd.common.channel.WindowClosedException: Already closed
	at org.apache.sshd.common.channel.Window.waitForSpace(Window.java:155)
	at org.apache.sshd.common.channel.ChannelOutputStream.flush(ChannelOutputStream.java:116)
	at org.apache.sshd.common.channel.ChannelOutputStream.write(ChannelOutputStream.java:84)
	at java.io.OutputStream.write(OutputStream.java:75)
	at org.eclipse.jgit.transport.PacketLineOut.writePacket(PacketLineOut.java:119)
	at org.eclipse.jgit.transport.PacketLineOut.writeString(PacketLineOut.java:103)
	at org.eclipse.jgit.transport.RefAdvertiser$PacketLineOutRefAdvertiser.writeOne(RefAdvertiser.java:79)
	at org.eclipse.jgit.transport.RefAdvertiser.advertiseId(RefAdvertiser.java:257)
	at org.eclipse.jgit.transport.RefAdvertiser.advertiseAny(RefAdvertiser.java:221)
	at org.eclipse.jgit.transport.RefAdvertiser.send(RefAdvertiser.java:165)
	at org.eclipse.jgit.transport.UploadPack.sendAdvertisedRefs(UploadPack.java:817)
	at org.eclipse.jgit.transport.UploadPack.service(UploadPack.java:671)
	at org.eclipse.jgit.transport.UploadPack.upload(UploadPack.java:637)
	at com.google.gerrit.sshd.commands.Upload.runImpl(Upload.java:57)
	at com.google.gerrit.sshd.AbstractGitCommand.service(AbstractGitCommand.java:101)
	at com.google.gerrit.sshd.AbstractGitCommand.access$000(AbstractGitCommand.java:32)
	at com.google.gerrit.sshd.AbstractGitCommand$1.run(AbstractGitCommand.java:70)
	at com.google.gerrit.sshd.BaseCommand$TaskThunk.run(BaseCommand.java:442)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)
	at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:344)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:636)
[2013-12-15 19:43:15,026] ERROR com.google.gerrit.server.git.ReceiveCommits : Can't scan for changes to close
com.google.gwtorm.server.OrmException: Error updating database
	at com.google.gerrit.server.git.ReceiveCommits$1.apply(ReceiveCommits.java:246)
	at com.google.gerrit.server.git.ReceiveCommits$1.apply(ReceiveCommits.java:240)
	at com.google.common.util.concurrent.Futures$MappingCheckedFuture.mapException(Futures.java:1648)
	at com.google.common.util.concurrent.AbstractCheckedFuture.checkedGet(AbstractCheckedFuture.java:85)
	at com.google.gerrit.server.git.ReceiveCommits.autoCloseChanges(ReceiveCommits.java:2148)
	at com.google.gerrit.server.git.ReceiveCommits.processCommands(ReceiveCommits.java:564)
	at com.google.gerrit.server.git.AsyncReceiveCommits$Worker.run(AsyncReceiveCommits.java:90)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at com.google.gerrit.server.util.RequestScopePropagator$5.call(RequestScopePropagator.java:222)
	at com.google.gerrit.server.util.RequestScopePropagator$4.call(RequestScopePropagator.java:201)
	at com.google.gerrit.server.util.ThreadLocalRequestScopePropagator$1.call(ThreadLocalRequestScopePropagator.java:55)
	at com.google.gerrit.server.util.RequestScopePropagator$1.call(RequestScopePropagator.java:98)
	at com.google.gerrit.server.util.RequestScopePropagator$2.run(RequestScopePropagator.java:131)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)
	at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:344)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:636)
Caused by: java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: com.google.gerrit.extensions.events.GitReferenceUpdatedListener$Event.getUpdates()Ljava/util/List;
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
	at java.util.concurrent.FutureTask.get(FutureTask.java:111)
	at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63)
	at com.google.common.util.concurrent.AbstractCheckedFuture.checkedGet(AbstractCheckedFuture.java:78)
	... 18 more
Caused by: java.lang.NoSuchMethodError: com.google.gerrit.extensions.events.GitReferenceUpdatedListener$Event.getUpdates()Ljava/util/List;
	at com.googlesource.gerrit.plugins.reviewnotes.RefUpdateListener.createReviewNotes(RefUpdateListener.java:122)
	at com.googlesource.gerrit.plugins.reviewnotes.RefUpdateListener.access$000(RefUpdateListener.java:38)
	at com.googlesource.gerrit.plugins.reviewnotes.RefUpdateListener$1.run(RefUpdateListener.java:66)
	at com.googlesource.gerrit.plugins.reviewnotes.RefUpdateListener.onGitReferenceUpdated(RefUpdateListener.java:92)
	at com.google.gerrit.server.extensions.events.GitReferenceUpdated.fire(GitReferenceUpdated.java:59)
	at com.google.gerrit.server.git.ReceiveCommits$ReplaceRequest.insertPatchSet(ReceiveCommits.java:1910)
	at com.google.gerrit.server.git.ReceiveCommits$ReplaceRequest$1.call(ReceiveCommits.java:1786)
	at com.google.gerrit.server.git.ReceiveCommits$ReplaceRequest$1.call(ReceiveCommits.java:1781)
	at com.google.gerrit.server.util.RequestScopePropagator$1.call(RequestScopePropagator.java:96)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:120)
	at com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:58)
	at com.google.gerrit.server.git.ReceiveCommits$ReplaceRequest.insertPatchSet(ReceiveCommits.java:1780)
	... 18 more
[2013-12-15 19:43:15,409] WARN  com.google.gerrit.server.git.MultiProgressMonitor : MultiProgressMonitor worker did not call end() before returning
[2013-12-15 19:43:15,416] WARN  com.google.gerrit.server.git.AsyncReceiveCommits : Error in ReceiveCommits
java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: com.google.gerrit.extensions.events.GitReferenceUpdatedListener$Event.getUpdates()Ljava/util/List;
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:262)
	at java.util.concurrent.FutureTask.get(FutureTask.java:119)
	at com.google.gerrit.server.git.WorkQueue$Task.get(WorkQueue.java:322)
	at com.google.gerrit.server.git.MultiProgressMonitor.waitFor(MultiProgressMonitor.java:252)
	at com.google.gerrit.server.git.AsyncReceiveCommits.onPreReceive(AsyncReceiveCommits.java:163)
	at org.eclipse.jgit.transport.ReceivePack.service(ReceivePack.java:203)
	at org.eclipse.jgit.transport.ReceivePack.receive(ReceivePack.java:160)
	at com.google.gerrit.sshd.commands.Receive.runImpl(Receive.java:101)
	at com.google.gerrit.sshd.AbstractGitCommand.service(AbstractGitCommand.java:101)
	at com.google.gerrit.sshd.AbstractGitCommand.access$000(AbstractGitCommand.java:32)
	at com.google.gerrit.sshd.AbstractGitCommand$1.run(AbstractGitCommand.java:70)
	at com.google.gerrit.sshd.BaseCommand$TaskThunk.run(BaseCommand.java:442)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)
	at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:344)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:636)
Caused by: java.lang.NoSuchMethodError: com.google.gerrit.extensions.events.GitReferenceUpdatedListener$Event.getUpdates()Ljava/util/List;
	at com.googlesource.gerrit.plugins.reviewnotes.RefUpdateListener.createReviewNotes(RefUpdateListener.java:122)
	at com.googlesource.gerrit.plugins.reviewnotes.RefUpdateListener.access$000(RefUpdateListener.java:38)
	at com.googlesource.gerrit.plugins.reviewnotes.RefUpdateListener$1.run(RefUpdateListener.java:66)
	at com.googlesource.gerrit.plugins.reviewnotes.RefUpdateListener.onGitReferenceUpdated(RefUpdateListener.java:92)
	at com.google.gerrit.server.extensions.events.GitReferenceUpdated.fire(GitReferenceUpdated.java:59)
	at com.google.gerrit.server.git.ReceiveCommits.processCommands(ReceiveCommits.java:589)
	at com.google.gerrit.server.git.AsyncReceiveCommits$Worker.run(AsyncReceiveCommits.java:90)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at com.google.gerrit.server.util.RequestScopePropagator$5.call(RequestScopePropagator.java:222)
	at com.google.gerrit.server.util.RequestScopePropagator$4.call(RequestScopePropagator.java:201)
	at com.google.gerrit.server.util.ThreadLocalRequestScopePropagator$1.call(ThreadLocalRequestScopePropagator.java:55)
	at com.google.gerrit.server.util.RequestScopePropagator$1.call(RequestScopePropagator.java:98)
	at com.google.gerrit.server.util.RequestScopePropagator$2.run(RequestScopePropagator.java:131)
	... 9 more

The commit is correctly pushed to the repository, but the ref-updated hook has not been called and the change is still marked as "Review in Progress" on the web interface.
Dec 16, 2013
#1 florent....@intersec.com
Additionally, it appears the issue was caused by an outdated version of the reviewnotes plugin.

What's strange here is that it only appeared after a restart of gerrit: gerrit 2.8 ran during 1 week with the correct version of the reviewnotes plugin, but on restart, the previous version was loaded instead of the up-to-date (the up-to-date version was just missing in gerrit's plugin directory). 
Sign in to add a comment

Powered by Google Project Hosting