Error with git-repo-metrics

113 views
Skip to first unread message

Marquis Wong

unread,
Sep 28, 2023, 4:08:39 PM9/28/23
to Repo and Gerrit Discussion
Hello,

I'm trying to use the git-repo-metrics plugin, and I'm running into the following error. Any help would be greatly appreciated.

[2023-09-28T14:59:00.891-05:00] [HTTP POST /changes/foo~292167/revisions/1/review (mwong from 123.456.789.123)] WARN  com.google.gerrit.server.plugincontext.PluginContext : Failure in class com.google.gerrit.server.events.EventBroker of plugin gerrit [CONTEXT PLUGIN="gerrit" project="foo" request="REST /changes/*/revisions/*/review" ]
com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/NullInjectedIntoNonNullable]: null returned by binding at PluginGuiceEnvironment$2.configure(PluginGuiceEnvironment.java:551) (installed by: PluginGuiceEnvironment$1 -> PluginGuiceEnvironment$2)
 but the 1st parameter instanceId of GitRepoUpdateListener.<init>(GitRepoUpdateListener.java:39) is not @Nullable
  at PluginGuiceEnvironment$2.configure(PluginGuiceEnvironment.java:551)
      \_ installed by: PluginGuiceEnvironment$1 -> PluginGuiceEnvironment$2
  at GitRepoUpdateListener.<init>(GitRepoUpdateListener.java:39)
      \_ for 1st parameter instanceId
  while locating GitRepoUpdateListener
  while locating EventListener annotated with @UniqueAnnotations$Internal(278)

Learn more:
  https://github.com/google/guice/wiki/NULL_INJECTED_INTO_NON_NULLABLE

1 error

======================
Full classname legend:
======================
EventListener:              "com.google.gerrit.server.events.EventListener"
GitRepoUpdateListener:      "com.googlesource.gerrit.plugins.gitrepometrics.GitRepoUpdateListener"
PluginGuiceEnvironment$1:   "com.google.gerrit.server.plugins.PluginGuiceEnvironment$1"
PluginGuiceEnvironment$2:   "com.google.gerrit.server.plugins.PluginGuiceEnvironment$2"
UniqueAnnotations$Internal: "com.google.inject.internal.UniqueAnnotations$Internal"
========================
End of classname legend:
========================

        at com.google.inject.internal.InternalProvisionException.toProvisionException(InternalProvisionException.java:251)
        at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1103)
        at com.google.gerrit.extensions.registration.Extension.get(Extension.java:59)
        at com.google.gerrit.server.plugincontext.PluginContext.runLogExceptions(PluginContext.java:208)
        at com.google.gerrit.server.plugincontext.PluginSetContext.lambda$runEach$1(PluginSetContext.java:148)
        at java.base/java.lang.Iterable.forEach(Iterable.java:75)
        at com.google.gerrit.server.plugincontext.PluginSetContext.runEach(PluginSetContext.java:148)
        at com.google.gerrit.server.events.EventBroker.fireEventForUnrestrictedListeners(EventBroker.java:110)
        at com.google.gerrit.server.events.EventBroker.fireEvent(EventBroker.java:121)
        at com.google.gerrit.server.events.EventBroker.postEvent(EventBroker.java:90)
        at com.google.gerrit.server.events.StreamEventsApiListener.lambda$onCommentAdded$14(StreamEventsApiListener.java:386)
        at com.google.gerrit.server.plugincontext.PluginContext.runLogExceptions(PluginContext.java:214)
        at com.google.gerrit.server.plugincontext.PluginItemContext.run(PluginItemContext.java:131)
        at com.google.gerrit.server.events.StreamEventsApiListener.onCommentAdded(StreamEventsApiListener.java:386)
        at com.google.gerrit.server.extensions.events.CommentAdded.lambda$fire$0(CommentAdded.java:74)
        at com.google.gerrit.server.plugincontext.PluginContext.runLogExceptions(PluginContext.java:214)
        at com.google.gerrit.server.plugincontext.PluginSetContext.lambda$runEach$1(PluginSetContext.java:148)
        at java.base/java.lang.Iterable.forEach(Iterable.java:75)
        at com.google.gerrit.server.plugincontext.PluginSetContext.runEach(PluginSetContext.java:148)
        at com.google.gerrit.server.extensions.events.CommentAdded.fire(CommentAdded.java:74)
        at com.google.gerrit.server.restapi.change.PostReviewOp.postUpdate(PostReviewOp.java:297)
        at com.google.gerrit.server.update.BatchUpdate.executePostOps(BatchUpdate.java:902)
        at com.google.gerrit.server.update.BatchUpdate.execute(BatchUpdate.java:189)
        at com.google.gerrit.server.update.BatchUpdate.execute(BatchUpdate.java:488)
        at com.google.gerrit.server.restapi.change.PostReview.apply(PostReview.java:392)
        at com.google.gerrit.server.restapi.change.PostReview.apply(PostReview.java:226)
        at com.google.gerrit.server.restapi.change.PostReview.apply(PostReview.java:128)
        at com.google.gerrit.httpd.restapi.RestApiServlet.lambda$invokeRestModifyViewWithRetry$7(RestApiServlet.java:915)
        at com.github.rholder.retry.AttemptTimeLimiters$NoAttemptTimeLimit.call(AttemptTimeLimiters.java:78)
        at com.github.rholder.retry.Retryer.call(Retryer.java:160)
        at com.google.gerrit.server.update.RetryHelper.executeWithTimeoutCount(RetryHelper.java:564)
        at com.google.gerrit.server.update.RetryHelper.execute(RetryHelper.java:507)
        at com.google.gerrit.server.update.RetryableAction.call(RetryableAction.java:173)
        at com.google.gerrit.httpd.restapi.RestApiServlet.invokeRestEndpointWithRetry(RestApiServlet.java:990)
        at com.google.gerrit.httpd.restapi.RestApiServlet.invokeRestModifyViewWithRetry(RestApiServlet.java:910)
        at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:560)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:290)
        at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:280)
        at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:184)
        at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:89)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
        at com.google.gerrit.httpd.raw.StaticModule$PolyGerritFilter.doFilter(StaticModule.java:412)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.GetUserFilter.doFilter(GetUserFilter.java:92)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.RequireSslFilter.doFilter(RequireSslFilter.java:72)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.RunAsFilter.doFilter(RunAsFilter.java:120)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.SetThreadNameFilter.doFilter(SetThreadNameFilter.java:62)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:139)
        at com.googlesource.gerrit.plugins.readonly.ReadOnly.doFilter(ReadOnly.java:79)
        at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:135)
        at com.google.gerrit.httpd.AllowRenderInFrameFilter.doFilter(AllowRenderInFrameFilter.java:56)
        at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:135)
        at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:141)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.RequestCleanupFilter.doFilter(RequestCleanupFilter.java:60)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.RequestMetricsFilter.doFilter(RequestMetricsFilter.java:92)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.RequestContextFilter.doFilter(RequestContextFilter.java:64)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.Server.handle(Server.java:516)
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
        at java.base/java.lang.Thread.run(Thread.java:833)

syntonyze

unread,
Sep 28, 2023, 4:22:05 PM9/28/23
to Marquis Wong, Repo and Gerrit Discussion
On Thu, 28 Sept 2023 at 22:08, Marquis Wong <mwa...@gmail.com> wrote:
Hello,

I'm trying to use the git-repo-metrics plugin, and I'm running into the following error. Any help would be greatly appreciated.

[2023-09-28T14:59:00.891-05:00] [HTTP POST /changes/foo~292167/revisions/1/review (mwong from 123.456.789.123)] WARN  com.google.gerrit.server.plugincontext.PluginContext : Failure in class com.google.gerrit.server.events.EventBroker of plugin gerrit [CONTEXT PLUGIN="gerrit" project="foo" request="REST /changes/*/revisions/*/review" ]
com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/NullInjectedIntoNonNullable]: null returned by binding at PluginGuiceEnvironment$2.configure(PluginGuiceEnvironment.java:551) (installed by: PluginGuiceEnvironment$1 -> PluginGuiceEnvironment$2)
 but the 1st parameter instanceId of GitRepoUpdateListener.<init>(GitRepoUpdateListener.java:39) is not @Nullable
  at PluginGuiceEnvironment$2.configure(PluginGuiceEnvironment.java:551)
      \_ installed by: PluginGuiceEnvironment$1 -> PluginGuiceEnvironment$2
  at GitRepoUpdateListener.<init>(GitRepoUpdateListener.java:39)
      \_ for 1st parameter instanceId
  while locating GitRepoUpdateListener
  while locating EventListener annotated with @UniqueAnnotations$Internal(278)


don't know much about the git-repo-metrics plugin, but this is your clue: looks like you don't have InstanceId set.
Have you tried configuring it [1]?

--
--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/repo-discuss/23df309f-4853-49eb-bd4d-2cf32713de83n%40googlegroups.com.

Fabio Ponciroli

unread,
Sep 28, 2023, 5:23:07 PM9/28/23
to syntonyze, Marquis Wong, Marquis Wong, Repo and Gerrit Discussion
Hi Marquis,


On Thu, 28 Sept 2023 at 13:22, syntonyze <synt...@gmail.com> wrote:


On Thu, 28 Sept 2023 at 22:08, Marquis Wong <mwa...@gmail.com> wrote:
Hello,

I'm trying to use the git-repo-metrics plugin, and I'm running into the following error. Any help would be greatly appreciated.

[2023-09-28T14:59:00.891-05:00] [HTTP POST /changes/foo~292167/revisions/1/review (mwong from 123.456.789.123)] WARN  com.google.gerrit.server.plugincontext.PluginContext : Failure in class com.google.gerrit.server.events.EventBroker of plugin gerrit [CONTEXT PLUGIN="gerrit" project="foo" request="REST /changes/*/revisions/*/review" ]
com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/NullInjectedIntoNonNullable]: null returned by binding at PluginGuiceEnvironment$2.configure(PluginGuiceEnvironment.java:551) (installed by: PluginGuiceEnvironment$1 -> PluginGuiceEnvironment$2)
 but the 1st parameter instanceId of GitRepoUpdateListener.<init>(GitRepoUpdateListener.java:39) is not @Nullable
  at PluginGuiceEnvironment$2.configure(PluginGuiceEnvironment.java:551)
      \_ installed by: PluginGuiceEnvironment$1 -> PluginGuiceEnvironment$2
  at GitRepoUpdateListener.<init>(GitRepoUpdateListener.java:39)
      \_ for 1st parameter instanceId
  while locating GitRepoUpdateListener
  while locating EventListener annotated with @UniqueAnnotations$Internal(278)


don't know much about the git-repo-metrics plugin, but this is your clue: looks like you don't have InstanceId set.
Have you tried configuring it [1]?


It is definitely due to the instanceId not being set, as Tony mentioned.
I believe it is a bug. @Marquis Wong can you raise an issue for it [1].

HTH,
Ponch

 

Marquis Wong

unread,
Sep 28, 2023, 5:48:08 PM9/28/23
to Repo and Gerrit Discussion

It does sound like this is the problem, though I haven't had a chance to confirm - need to schedule a restart. I was unable to pick up this configuration using the `reload-config` ssh command - is that expected?

Fabio Ponciroli

unread,
Sep 28, 2023, 5:57:43 PM9/28/23
to Marquis Wong, Repo and Gerrit Discussion
Hi,

On Thu, 28 Sept 2023 at 14:48, Marquis Wong <mwa...@gmail.com> wrote:

It does sound like this is the problem, though I haven't had a chance to confirm - need to schedule a restart. I was unable to pick up this configuration using the `reload-config` ssh command - is that expected?

Unfortunately to change the instanceId you will have to restart Gerrit.
 
Reply all
Reply to author
Forward
0 new messages