| Issue 3724: | Installing javamelody plugin while Gerrit is running kills Gerrit | |
| 2 people starred this issue and may be notified of changes. | Back to list |
Affected Version: gerrit 2.11.4, javamelody upgrade 2.8 to 2.11 What steps will reproduce the problem? 1. run Gerrit 2.11.4 with javamelody 2.8.4 installed 2. upgrade javamelody to ver 2.11.4. I upgraded by copying the file to review_site/plugins folder while Gerrit was still running. 3. wait a few minutes for Gerrit to load new plugins. The logs will show something like: "Reloading plugin javamelody, version v2.11.4-11-ga14450f" 4. now open page http://$GERRIT_HOST:8080/#/admin/plugins/ What is the expected output? What do you see instead? Gerrit should upgrade the javamelody pluign and continue to work. Instead result is 'Server Error' and get the below exception. Essentially Gerrit is broken at this point, attempts to access any page will result in 'Server Error'. Gerrit will work fine after a restart. full stack track here: http://paste.openstack.org/show/482030/ [2015-12-15 23:32:33,355] WARN org.eclipse.jetty.servlet.ServletHandler : / java.lang.NullPointerException at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:170) at com.googlesource.gerrit.plugins.javamelody.GerritMonitoringFilter.doFilter(GerritMonitoringFilter.java:65) at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:62) at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:57) at com.google.gerrit.httpd.RequestContextFilter.doFilter(RequestContextFilter.java:75) 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.handler.RequestLogHandler.handle(RequestLogHandler.java:95) 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)
Dec 15, 2015
Project Member
#1
zaro0508
Summary:
Upgrading javamelody plugin while Gerrit is running kills Gerrit
(was: Upgrade javamelody plugin)
Dec 18, 2015
I've also just verified that this bug is not exclusive to a version 2.8 to 2.11 upgrade. I can reproduce this issue on my Gerrit 2.11 (with javamelody 2.11 plugin) by upgrading to a javamelody 2.11 plugin built from https://gerrit.gerritforge.com/view/Plugins-stable-2.11/job/plugin-javamelody-stable-2.11/ when i restart Gerrit it works fine so i know the javamelody build from gerritforge works.
Dec 19, 2015
What happens if you first unload the existing plugin, and then add it again?
Dec 20, 2015
I wasn't able to reproduce the problem on master (both Gerrit and plugin). The steps I tried: Scenario I: redeploying already deployed plugin 1. build both gerrit and plugin on most recent master 2. start gerrit with plugin deployed 3. activate Monioring page and confirm it works 4. change the plugin, rebuild and deploy new version 5. confirm these messages appear in the log [2015-12-20 10:52:45,296] [PluginScanner] INFO com.google.gerrit.server.plugins.PluginLoader : Reloading plugin javamelody [2015-12-20 10:52:45,386] [PluginScanner] INFO com.google.gerrit.server.plugins.PluginLoader : Unloading plugin javamelody, version 11de5e0 [2015-12-20 10:52:45,456] [PluginScanner] INFO com.google.gerrit.server.plugins.PluginLoader : Reloaded plugin javamelody, version 11de5e0 [2015-12-20 10:53:45,909] [WorkQueue-1] INFO com.google.gerrit.server.plugins.PluginLoader : Cleaned plugin plugin_javamelody_151220_1049_753737831805868523.jar 6. activate Monioring page again and confirm it still works Scenario II: Install plugin into running gerrit instance (where the plugin wasn't available) 1. start gerrit without the plugin installed 2. deploy plugin in running gerrit instance 3. confirm these message appears in the log [2015-12-20 11:05:23,105] [PluginScanner] INFO com.google.gerrit.server.plugins.PluginLoader : Loaded plugin javamelody, version 11de5e0 4. activate Monioring page and confirm it works
Status:
AwaitingInformation
Dec 24, 2015
I concur, I was not able to reproduce with master as well. However I was able to repro using the released Gerrit 2.8.5 build[1] and with the Gerritforge build of the javamelody plugin[2]. And I've changed the title of this bug because it looks like you can repro this error simply by installing the javamelody plugin while gerrit is running. I can repro by copying the jar into plugins folder or by using the plugin install ssh command. more simple repro steps: 1. run gerrit 2. install plugin by coping plugin jar into the gerrit plugin folder or use plugin install ssh command 3. wait for "Loaded plugin javamelody" message in gerrit log. 4. refresh gerrit Get a 'server error' on UI and NullPointerException in log[3] [1] https://www.gerritcodereview.com/download/gerrit-2.11.5.war [2] https://gerrit.gerritforge.com/view/Plugins-stable-2.11/job/plugin-javamelody-stable-2.11/lastSuccessfulBuild/artifact/buck-out/gen/plugins/javamelody/javamelody.jar [3] http://paste.openstack.org/show/482678/
Summary:
Installing javamelody plugin while Gerrit is running kills Gerrit
(was: Upgrading javamelody plugin while Gerrit is running kills Gerrit)
Status: Accepted |
|
| ► Sign in to add a comment |