docker images and outdated/non-working plugins

42 views
Skip to first unread message

pol...@gmail.com

unread,
Oct 9, 2017, 8:24:54 AM10/9/17
to Repo and Gerrit Discussion
Hi,

Should problems with the official Docker images by Gerritforge be reported here, on the issue tracker or elsewhere?

Trying out the ubuntu image for 16.04, I noticed that the Java Melody plugin seem outdated because:
  • The latest version is v2.13-16-g78a4576 and doesn't match 2.14.4 which the image is currently using
  • The out of the box plugin pages says upgrade? you can click it all you like, but it won't do anything
  • There is no Monitoring link after the Gerrit instance have come up 
  • There is no Java monitoring server capability in rights management (I assume that still exists, not used it in a while)
On another side note, the Gerrit image is quite large, at 850 MB. I've hacked about it and can get it down to 684 MB with openjdk-8-jdk and 532 Mb with the headless variant.

But I am note sure if there is any font support and such required so I don't know if it is worthwhile to reduce the image, perhaps just adds uncertainty?

Regards,


Per

Luca Milanesio

unread,
Oct 9, 2017, 6:04:49 PM10/9/17
to pol...@gmail.com, Repo and Gerrit Discussion

On 9 Oct 2017, at 13:06, pol...@gmail.com wrote:

Hi,

Should problems with the official Docker images by Gerritforge be reported here, on the issue tracker or elsewhere?

The official Docker image is not on the gerritcodereview DockerHub organisation:


Trying out the ubuntu image for 16.04, I noticed that the Java Melody plugin seem outdated because:
  • The latest version is v2.13-16-g78a4576 and doesn't match 2.14.4 which the image is currently using
Yep, see above.

  • The out of the box plugin pages says upgrade? you can click it all you like, but it won't do anything
???

  • There is no Monitoring link after the Gerrit instance have come up 
JavaMelody isn't a core plugin.
  • There is no Java monitoring server capability in rights management (I assume that still exists, not used it in a while)
Same as above

On another side note, the Gerrit image is quite large, at 850 MB. I've hacked about it and can get it down to 684 MB with openjdk-8-jdk and 532 Mb with the headless variant.

Good point, can you propose a patch?
The Docker image project is on:


But I am note sure if there is any font support and such required so I don't know if it is worthwhile to reduce the image, perhaps just adds uncertainty?

Regards,


Per


--
--
To unsubscribe, email repo-discuss...@googlegroups.com
More info at http://groups.google.com/group/repo-discuss?hl=en

---
You received this message because you are subscribed to the Google Groups "Repo and Gerrit Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to repo-discuss...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

pol...@gmail.com

unread,
Oct 10, 2017, 5:23:49 AM10/10/17
to Repo and Gerrit Discussion


On Monday, 9 October 2017 23:04:49 UTC+1, lucamilanesio wrote:

The official Docker image is not on the gerritcodereview DockerHub organisation:

I see, I think you meant that the official images isn't under gerritforge. Ok. Both images exhibit the same failure though.
  • The out of the box plugin pages says upgrade? you can click it all you like, but it won't do anything
???

When the page comes up some plugins are pre-installed and require upgrade, you click upgrade and the state changes to "Installed".

For Java Melody the button says "Install", you click that and it then says "upgrade", but no matter how many times you click "upgrade" it won't change.

  • There is no Monitoring link after the Gerrit instance have come up 
JavaMelody isn't a core plugin.

 I wasn't commenting from the aspect of the maintainer but from the user experience point view of a new user. 

I believe the intention with the new out of the box front/first page was to give new users a better user experience and it seems that there is a problem because the out of the box install page doesn't realise that there is a problem when a plugin can't be installed properly (exceptions raised) or that it isn't possible to upgrade the plugin. If it can't be installed without an exception then maybe the state should change to a static red "Failed"?

A user have no idea what a core plugin is and that it might not be maintained or up to date, if that is significant then maybe that should be stated on the plugin page.
On another side note, the Gerrit image is quite large, at 850 MB. I've hacked about it and can get it down to 684 MB with openjdk-8-jdk and 532 Mb with the headless variant.

Good point, can you propose a patch?
The Docker image project is on:

Sure. 

The error Java melody throws is:

[2017-10-10 09:12:31,513] [HTTP-75] WARN  org.eclipse.jetty.server.HttpChannel : //localhost:8083/a/plugins/javamelody.jar
com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Error in custom provider, com.google.inject.OutOfScopeException: Cannot access scoped [com.google.gerrit.httpd.WebSession]. Either we are not currently inside an HTTP Servlet reque
st, or you may have forgotten to apply com.google.inject.servlet.GuiceFilter as a servlet filter for this request.
 at com.google.gerrit.extensions.registration.DynamicItem.bind(DynamicItem.java:119)
 while locating com.google.gerrit.httpd.WebSession

1 error
       at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1028)
       at com.google.gerrit.extensions.registration.DynamicItem.get(DynamicItem.java:142)
       at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:475)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
       at com.google.gerrit.httpd.plugins.HttpPluginServlet.service(HttpPluginServlet.java:216)
       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.gerrit.httpd.raw.StaticModule$PolyGerritFilter.doFilter(StaticModule.java:451)
       at com.google.gerrit.httpd.GetUserFilter.doFilter(GetUserFilter.java:75)
       at com.google.gerrit.httpd.RunAsFilter.doFilter(RunAsFilter.java:111)
       at com.google.gerrit.httpd.RequireIdentifiedUserFilter.doFilter(RequireIdentifiedUserFilter.java:50)
       at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:70)
       at com.google.gerrit.httpd.ProjectBasicAuthFilter.doFilter(ProjectBasicAuthFilter.java:100)
       at com.google.gerrit.httpd.RequestMetricsFilter.doFilter(RequestMetricsFilter.java:57)
       at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:133)
       at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:135)
       at com.google.gerrit.httpd.RequestContextFilter.doFilter(RequestContextFilter.java:72)
       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:1759)
       at com.googlesource.gerrit.plugins.ootb.FirstTimeRedirect.doFilter(FirstTimeRedirect.java:63)
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
       at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
       at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:224)
       at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
       at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
       at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
       at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
       at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
       at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:56)
       at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
       at org.eclipse.jetty.server.Server.handle(Server.java:534)
       at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
       at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
       at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283)
       at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108)
       at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
       at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
       at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
       at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
       at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
       at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
       at java.lang.Thread.run(Thread.java:748)
Caused by: com.google.inject.OutOfScopeException: Cannot access scoped [com.google.gerrit.httpd.WebSession]. Either we are not currently inside an HTTP Servlet request, or you may hav
e forgotten to apply com.google.inject.servlet.GuiceFilter as a servlet filter for this request.
       at com.google.inject.servlet.GuiceFilter.getContext(GuiceFilter.java:169)
       at com.google.inject.servlet.GuiceFilter.getOriginalRequest(GuiceFilter.java:149)
       at com.google.inject.servlet.ServletScopes$RequestScope$1.get(ServletScopes.java:113)
       at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
       at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1019)
       at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
       at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1015)

Luca Milanesio

unread,
Oct 11, 2017, 6:41:52 AM10/11/17
to pol...@gmail.com, Repo and Gerrit Discussion

On 10 Oct 2017, at 10:23, pol...@gmail.com wrote:



On Monday, 9 October 2017 23:04:49 UTC+1, lucamilanesio wrote:

The official Docker image is not on the gerritcodereview DockerHub organisation:

I see, I think you meant that the official images isn't under gerritforge. Ok. Both images exhibit the same failure though.
  • The out of the box plugin pages says upgrade? you can click it all you like, but it won't do anything
???

When the page comes up some plugins are pre-installed and require upgrade, you click upgrade and the state changes to "Installed".

For Java Melody the button says "Install", you click that and it then says "upgrade", but no matter how many times you click "upgrade" it won't change.

JavaMelody is not a "proper plugin" and cannot be installed on a running Gerrit instance.
Needs, configuration, libs and restart.


  • There is no Monitoring link after the Gerrit instance have come up 
JavaMelody isn't a core plugin.

 I wasn't commenting from the aspect of the maintainer but from the user experience point view of a new user. 

JavaMelody isn't in the list of pre-packaged or core-plugins. It is not part of the out of the box UX then.


I believe the intention with the new out of the box front/first page was to give new users a better user experience and it seems that there is a problem because the out of the box install page doesn't realise that there is a problem when a plugin can't be installed properly (exceptions raised) or that it isn't possible to upgrade the plugin. If it can't be installed without an exception then maybe the state should change to a static red "Failed"?

I am confused, are you talking about the "fist time user experience" ? Or just talking about the JavaMelody plugin? Or the plugin-manager?


A user have no idea what a core plugin is and that it might not be maintained or up to date, if that is significant then maybe that should be stated on the plugin page.
On another side note, the Gerrit image is quite large, at 850 MB. I've hacked about it and can get it down to 684 MB with openjdk-8-jdk and 532 Mb with the headless variant.

There are companies that provide that service, Enterprise Support, validation and maintenance of plugins.
As OpenSource community, there isn't a central coordination or validation of plugins, every maintainer is responsible for their own plugins.

Reply all
Reply to author
Forward
0 new messages