Setting up pull replication plugin

916 views
Skip to first unread message

Mark Bekhet

unread,
Jul 27, 2022, 11:14:11 AM7/27/22
to Repo and Gerrit Discussion
Hi,
We are trying to set up the pull-replication plugin on our mirrors to replicate master on Gerrit 3.4. Our configuration for pull-replication plugin on mirror instance looks like the following:
 [remote "master"]
        url = https://<mastersite_url>/${name}.git
        replicationDelay = 5
    fetch = refs/*:refs/*
        createMissingRepositories = true
        replicateProjectDeletions = true
        lockErrorMaxRetries = 3
        timeout = 600
        replicationRetry = 0
    authGroup = authGroup1
    authGroup = authGroup2
    authGroup = authGroup3
        threads = 13
    rescheduleDelay = 5

Connection with the master site seems to be working fine and it fetches refs, authentication is working with the values in the secure.config file, when I checked the httpd_log from master site, the returning code is 200. However, it keeps rejecting the replication and I see the following logging:

[2022-07-27 16:47:07,473] Replication from https://<MASTERSITE_URL>/gerrit/gerrit.git started...
[2022-07-27 16:47:07,475] Fetch references [refs/*:refs/*] from https://<MASTERSITE_URL>/gerrit/gerrit.git
[2022-07-27 16:47:09,916] Failed replicate https://<MASTERSITE_URL>/gerrit/gerrit.git from refs/notes/review: result REJECTED
[2022-07-27 16:47:09,917] Replication from https://<MASTERSITE_URL>/gerrit/gerrit.git completed in 2444ms, 5001ms delay, 0 retries.

Any idea how to fix the replication for this rejected ref?

Luca Milanesio

unread,
Jul 27, 2022, 4:43:06 PM7/27/22
to Mark Bekhet, Luca Milanesio, Repo and Gerrit Discussion
Hi Mark,
Answers inline.

> On 27 Jul 2022, at 17:14, Mark Bekhet <bekhe...@gmail.com> wrote:
>
> Hi,
> We are trying to set up the pull-replication plugin on our mirrors to replicate master on Gerrit 3.4. Our configuration for pull-replication plugin on mirror instance looks like the following:
> [remote "master"]
> url = https://<mastersite_url>/${name}.git
> replicationDelay = 5
> fetch = refs/*:refs/*

You’ve missed the ‘+’, please change it to:
Fetch = +refs/*:refs/*

> createMissingRepositories = true
> replicateProjectDeletions = true
> lockErrorMaxRetries = 3
> timeout = 600
> replicationRetry = 0
> authGroup = authGroup1
> authGroup = authGroup2
> authGroup = authGroup3
> threads = 13
> rescheduleDelay = 5
>
> Connection with the master site seems to be working fine and it fetches refs, authentication is working with the values in the secure.config file, when I checked the httpd_log from master site, the returning code is 200. However, it keeps rejecting the replication and I see the following logging:
>
> [2022-07-27 16:47:07,473] Replication from https://<MASTERSITE_URL>/gerrit/gerrit.git started...
> [2022-07-27 16:47:07,475] Fetch references [refs/*:refs/*] from https://<MASTERSITE_URL>/gerrit/gerrit.git
> [2022-07-27 16:47:09,916] Failed replicate https://<MASTERSITE_URL>/gerrit/gerrit.git from refs/notes/review: result REJECTED
> [2022-07-27 16:47:09,917] Replication from https://<MASTERSITE_URL>/gerrit/gerrit.git completed in 2444ms, 5001ms delay, 0 retries.

If you don’t include the ‘+’ the refs won’t be updated if they aren’t a fast-forward.

>
> Any idea how to fix the replication for this rejected ref?

See my suggested changes on the fetch section in the replication.config.

HTH

Luca.

Mark Bekhet

unread,
Jul 27, 2022, 5:50:15 PM7/27/22
to Repo and Gerrit Discussion
Thank you Luca, I updated the replication.config file.

Mark Bekhet

unread,
Jul 27, 2022, 6:17:36 PM7/27/22
to Repo and Gerrit Discussion
I got another question, this time is from master site when I enable the plugin from master to test the full workflow. I have the following error

[2022-07-27 23:59:06,732] Exception during the pull replication fetch rest api call.  Message:java.lang.NullPointerException
java.util.concurrent.ExecutionException: java.lang.NullPointerException
    at java.base/java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1064)
    at com.googlesource.gerrit.plugins.replication.pull.ReplicationQueue.fire(ReplicationQueue.java:204)
    at com.googlesource.gerrit.plugins.replication.pull.ReplicationQueue.fire(ReplicationQueue.java:178)
    at com.googlesource.gerrit.plugins.replication.pull.ReplicationQueue.onGitReferenceUpdated(ReplicationQueue.java:143)
    at com.google.gerrit.server.extensions.events.GitReferenceUpdated.lambda$fire$0(GitReferenceUpdated.java:154)
    at com.google.gerrit.server.plugincontext.PluginContext.runLogExceptions(PluginContext.java:206)
    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.GitReferenceUpdated.fire(GitReferenceUpdated.java:154)
    at com.google.gerrit.server.extensions.events.GitReferenceUpdated.fire(GitReferenceUpdated.java:80)
    at com.google.gerrit.server.project.ProjectCreator.createEmptyCommits(ProjectCreator.java:220)
    at com.google.gerrit.server.project.ProjectCreator.createProject(ProjectCreator.java:125)
    at com.google.gerrit.server.restapi.project.CreateProject.apply(CreateProject.java:180)
    at com.google.gerrit.server.restapi.project.CreateProject.apply(CreateProject.java:68)
    at com.google.gerrit.httpd.restapi.RestApiServlet.lambda$invokeRestCollectionCreateViewWithRetry$8(RestApiServlet.java:851)
    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:561)
    at com.google.gerrit.server.update.RetryHelper.execute(RetryHelper.java:504)
    at com.google.gerrit.server.update.RetryableAction.call(RetryableAction.java:172)
    at com.google.gerrit.httpd.restapi.RestApiServlet.invokeRestEndpointWithRetry(RestApiServlet.java:909)
    at com.google.gerrit.httpd.restapi.RestApiServlet.invokeRestCollectionCreateViewWithRetry(RestApiServlet.java:846)
    at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:548)
    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:392)
    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 net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:239)
    at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:215)
    at com.googlesource.gerrit.plugins.javamelody.GerritMonitoringFilter.doFilter(GerritMonitoringFilter.java:66)
    at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:135)
    at com.ericsson.gerrit.plugins.goimport.GoImportFilter.doFilter(GoImportFilter.java:147)
    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:1601)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
    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:1435)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
    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:1350)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:54)
    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:388)
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
    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:336)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.NullPointerException
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:603)
    ... 90 more
Caused by: java.lang.NullPointerException
    at com.googlesource.gerrit.plugins.replication.pull.client.FetchRestApiClient.<init>(FetchRestApiClient.java:92)
    at com.googlesource.gerrit.plugins.replication.pull.client.FetchRestApiClient$$FastClassByGuice$$-1762643707.GUICE$TRAMPOLINE(<generated>)
    at com.googlesource.gerrit.plugins.replication.pull.client.FetchRestApiClient$$FastClassByGuice$$-1762643707.apply(<generated>)
    at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:82)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:296)
    at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1100)
    at com.google.inject.assistedinject.FactoryProvider2.invoke(FactoryProvider2.java:878)
    at com.sun.proxy.$Proxy525.create(Unknown Source)
    at com.googlesource.gerrit.plugins.replication.pull.ReplicationQueue.callSendObject(ReplicationQueue.java:276)
    at com.googlesource.gerrit.plugins.replication.pull.ReplicationQueue.lambda$getCallFunction$6(ReplicationQueue.java:250)
    at com.googlesource.gerrit.plugins.replication.pull.ReplicationQueue.lambda$callFunction$4(ReplicationQueue.java:229)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
    at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:408)
    at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:736)
    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:661)
    at com.googlesource.gerrit.plugins.replication.pull.ReplicationQueue.lambda$fire$3(ReplicationQueue.java:203)
    at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1407)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

My config on master site is the following:
 [remote "mirror"]
           url = https://<mirror_url>/${name}.git
           apiUrl = https://<mirror_url>
           fetch = +refs/*:refs/*
 I added the mirrorId in gerrit.config.

Finally, when I run ssh -p 29418 user@url pull-replication list, I get the following result:
Remote: mirror
Url: https://<mirror_url>/${name}.git

I am not sure what I missed in the configuration.

Luca Milanesio

unread,
Jul 27, 2022, 6:21:20 PM7/27/22
to Repo and Gerrit Discussion, Luca Milanesio, Mark Bekhet
-- 
-- 
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/ca6a2c4f-67d4-4b37-b383-59fd20424b1dn%40googlegroups.com.

Luca Milanesio

unread,
Jul 27, 2022, 6:36:49 PM7/27/22
to Mark Bekhet, Repo and Gerrit Discussion, Luca Milanesio


On 28 Jul 2022, at 00:23, Mark Bekhet <bekhe...@gmail.com> wrote:

Yes, but I didn't restart Gerrit on the server after that , I tried to reload configs but it returned that configs didn't change.

Gerrit’s instanceId change requires a restart.

Luca.

Mark Bekhet

unread,
Jul 28, 2022, 9:03:39 AM7/28/22
to Repo and Gerrit Discussion

Thanks Luca for the help it works now after restarting Gerrit.

Mark 

Mark Bekhet

unread,
Jul 28, 2022, 1:35:34 PM7/28/22
to Repo and Gerrit Discussion
Hi Luca,

Currently I am testing the pull-replication plugin after creating a new project via the UI. Communication between master and mirror is working and master notifies mirror to fetch but I noticed this error on mirror:
[2022-07-28 09:38:33,956] Replication from http://localhost:8080/test_renaming_instanceId.git started...
[2022-07-28 09:38:33,957] Exception during the fetch operation
java.util.concurrent.TimeoutException
    at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:204)
    at com.google.gerrit.server.git.WorkQueue$Task.get(WorkQueue.java:583)
    at com.googlesource.gerrit.plugins.replication.pull.api.FetchCommand.fetch(FetchCommand.java:86)
    at com.googlesource.gerrit.plugins.replication.pull.api.FetchCommand.fetchSync(FetchCommand.java:66)
    at com.googlesource.gerrit.plugins.replication.pull.api.FetchAction.applySync(FetchAction.java:99)
    at com.googlesource.gerrit.plugins.replication.pull.api.FetchAction.apply(FetchAction.java:85)
    at com.googlesource.gerrit.plugins.replication.pull.api.FetchAction.apply(FetchAction.java:40)
    at com.google.gerrit.httpd.restapi.RestApiServlet.lambda$invokeRestModifyViewWithRetry$7(RestApiServlet.java:834)

    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:561)
    at com.google.gerrit.server.update.RetryHelper.execute(RetryHelper.java:504)
    at com.google.gerrit.server.update.RetryableAction.call(RetryableAction.java:172)
    at com.google.gerrit.httpd.restapi.RestApiServlet.invokeRestEndpointWithRetry(RestApiServlet.java:909)
    at com.google.gerrit.httpd.restapi.RestApiServlet.invokeRestModifyViewWithRetry(RestApiServlet.java:829)
    at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:532)

    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:392)
    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.RunAsFilter.doFilter(RunAsFilter.java:120)
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
    at com.google.gerrit.httpd.RequireIdentifiedUserFilter.doFilter(RequireIdentifiedUserFilter.java:50)

    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.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.ProjectBasicAuthFilter.doFilter(ProjectBasicAuthFilter.java:105)
[2022-07-28 09:38:33,958] Fetch references [+refs/*:refs/*] from http://localhost:8080/test_renaming_instanceId.git
[2022-07-28 09:38:33,988] Cannot replicate from http://localhost:8080/test_renaming_instanceId.git
org.eclipse.jgit.errors.TransportException: Remote does not have refs/* available for fetch.
    at org.eclipse.jgit.transport.FetchProcess.expandSingle(FetchProcess.java:408)
    at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:160)
    at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:94)
    at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1309)
    at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1239)
    at com.googlesource.gerrit.plugins.replication.pull.fetch.JGitFetch.fetchVia(JGitFetch.java:69)
    at com.googlesource.gerrit.plugins.replication.pull.fetch.JGitFetch.fetch(JGitFetch.java:57)
    at com.googlesource.gerrit.plugins.replication.pull.fetch.BatchFetchClient.fetch(BatchFetchClient.java:45)
    at com.googlesource.gerrit.plugins.replication.pull.FetchOne.runImpl(FetchOne.java:373)
    at com.googlesource.gerrit.plugins.replication.pull.FetchOne.doRunFetchOperation(FetchOne.java:300)
    at com.googlesource.gerrit.plugins.replication.pull.FetchOne.runFetchOperation(FetchOne.java:275)
    at com.googlesource.gerrit.plugins.replication.pull.FetchOne.access$000(FetchOne.java:66)
    at com.googlesource.gerrit.plugins.replication.pull.FetchOne$1.call(FetchOne.java:260)
    at com.googlesource.gerrit.plugins.replication.pull.FetchOne$1.call(FetchOne.java:257)
    at com.google.gerrit.server.util.RequestScopePropagator.lambda$cleanup$1(RequestScopePropagator.java:182)
    at com.google.gerrit.server.util.RequestScopePropagator.lambda$context$0(RequestScopePropagator.java:170)
    at com.google.gerrit.server.git.PerThreadRequestScope$Propagator.lambda$scope$0(PerThreadRequestScope.java:70)
    at com.googlesource.gerrit.plugins.replication.pull.FetchOne.run(FetchOne.java:264)
    at com.google.gerrit.server.logging.LoggingContextAwareRunnable.run(LoggingContextAwareRunnable.java:113)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:612)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)

This error happens when a new project is created. Why does replication fail in this case, do I need to put extra delays from master node?

Luca Milanesio

unread,
Jul 28, 2022, 6:57:30 PM7/28/22
to Repo and Gerrit Discussion, Luca Milanesio, Mark Bekhet

On 28 Jul 2022, at 19:35, Mark Bekhet <bekhe...@gmail.com> wrote:

Hi Luca,

Currently I am testing the pull-replication plugin after creating a new project via the UI. Communication between master and mirror is working and master notifies mirror to fetch but I noticed this error on mirror:

Can you create a different discussion topic for this? Otherwise it will continue forever with any problem related to the pull-replication plugin, making it difficult for people to associate with a specific issue.

Thanks.
Luca.


Marcin Czech

unread,
Jul 29, 2022, 6:15:55 AM7/29/22
to Mark Bekhet, Repo and Gerrit Discussion
Hi Mark,
I agree with Luca, please create a separate topic. But just to let you know there is a change request related to that issue:

Thanks,
Marcin

Reply all
Reply to author
Forward
0 new messages