| Issue 3484: | [Replication] push not permitted | |
| 2 people starred this issue and may be notified of changes. | Back to list |
***************************************************************** ***** ***** ***** !!!! THIS BUG TRACKER IS FOR GERRIT CODE REVIEW !!!! ***** ***** ***** ***** DO NOT SUBMIT BUGS FOR CHROME, ANDROID, CYANOGENMOD, ***** ***** INTERNAL ISSUES WITH YOUR COMPANY'S GERRIT SETUP, ETC.***** ***** ***** ***** THOSE ISSUES BELONG IN DIFFERENT ISSUE TRACKERS ***** ***** ***** ***************************************************************** Affected Version: 2.11.1 What steps will reproduce the problem? 1.Create project via cmd: ssh -p 29418 review.example.com gerrit create-project gerrit.git 2.Go to the destination server to check the repo 3. What is the expected output? What do you see instead? Expect: there is a repo named gerrit.git under /path/ Instead: some exception happens: Please provide any additional information below. [2015-07-16 18:38:16,721] [87465846] Cannot replicate to gerrit2@git.example.com:/usr/git/gerrit.git org.eclipse.jgit.errors.TransportException: gerrit2@git.example.com:/usr/git/gerrit.git: push not permitted at org.eclipse.jgit.transport.BasePackPushConnection.noRepository(BasePackPushConnection.java:176) at org.eclipse.jgit.transport.BasePackConnection.readAdvertisedRefsImpl(BasePackConnection.java:200) at org.eclipse.jgit.transport.BasePackConnection.readAdvertisedRefs(BasePackConnection.java:178) at org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection.<init>(TransportGitSsh.java:341) at org.eclipse.jgit.transport.TransportGitSsh.openPush(TransportGitSsh.java:166) at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:154) at org.eclipse.jgit.transport.Transport.push(Transport.java:1200) at org.eclipse.jgit.transport.Transport.push(Transport.java:1246) at com.googlesource.gerrit.plugins.replication.PushOne.pushVia(PushOne.java:399) at com.googlesource.gerrit.plugins.replication.PushOne.runImpl(PushOne.java:371) at com.googlesource.gerrit.plugins.replication.PushOne.runPushOperation(PushOne.java:286) at com.googlesource.gerrit.plugins.replication.PushOne.access$000(PushOne.java:81) at com.googlesource.gerrit.plugins.replication.PushOne$1.call(PushOne.java:256) at com.googlesource.gerrit.plugins.replication.PushOne$1.call(PushOne.java:253) 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.git.PerThreadRequestScope$Propagator$1.call(PerThreadRequestScope.java:75) at com.googlesource.gerrit.plugins.replication.PushOne.run(PushOne.java:253) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:379) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
Jul 17, 2015
Project Member
#1
bassem.rabil
Jul 19, 2015
thanks for your reply, but the weird thing is: it reported "push not permitted" first, but after 4 - 5 times retrying, it can pushed successfully.
Jul 19, 2015
The follows is the logs: [2015-07-14 15:43:01,301] [] scheduling replication gerrit:refs/meta/config => gerrit2@git.example.com:/usr/git/gerrit.git [2015-07-14 15:43:01,301] [] scheduled gerrit:refs/meta/config => [e9599e87] push gerrit2@git.example.com:/usr/git/gerrit.git to run after 15s [2015-07-14 15:43:16,301] [e9599e87] Replication to gerrit2@git.example.com:/usr/git/gerrit.git started... [2015-07-14 15:43:16,302] [e9599e87] Push to gerrit2@git.example.com:/usr/git/gerrit.git references: [RemoteRefUpdate[remoteName=refs/meta/config, NOT_ATTEMPTED, (null)...179bd8570961db4aa2b5a55cb5ffe96ebf6382c5, srcRef=refs/meta/config, message=null]] [2015-07-14 15:43:22,093] [e9599e87] Cannot replicate to gerrit2@git.example.com:/usr/git/gerrit.git org.eclipse.jgit.errors.TransportException: gerrit2@git.example.com:/usr/git/gerrit.git: push not permitted at org.eclipse.jgit.transport.BasePackPushConnection.noRepository(BasePackPushConnection.java:176) at org.eclipse.jgit.transport.BasePackConnection.readAdvertisedRefsImpl(BasePackConnection.java:200) at org.eclipse.jgit.transport.BasePackConnection.readAdvertisedRefs(BasePackConnection.java:178) at org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection.<init>(TransportGitSsh.java:341) at org.eclipse.jgit.transport.TransportGitSsh.openPush(TransportGitSsh.java:166) at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:154) at org.eclipse.jgit.transport.Transport.push(Transport.java:1200) at org.eclipse.jgit.transport.Transport.push(Transport.java:1246) at com.googlesource.gerrit.plugins.replication.PushOne.pushVia(PushOne.java:399) at com.googlesource.gerrit.plugins.replication.PushOne.runImpl(PushOne.java:371) at com.googlesource.gerrit.plugins.replication.PushOne.runPushOperation(PushOne.java:286) at com.googlesource.gerrit.plugins.replication.PushOne.access$000(PushOne.java:81) at com.googlesource.gerrit.plugins.replication.PushOne$1.call(PushOne.java:256) at com.googlesource.gerrit.plugins.replication.PushOne$1.call(PushOne.java:253) 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.git.PerThreadRequestScope$Propagator$1.call(PerThreadRequestScope.java:75) at com.googlesource.gerrit.plugins.replication.PushOne.run(PushOne.java:253) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:379) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) [2015-07-14 15:45:22,095] [e9599e87] Replication to gerrit2@git.example.com:/usr/git/gerrit.git started... [2015-07-14 15:45:22,096] [e9599e87] Push to gerrit2@git.example.com:/usr/git/gerrit.git references: [RemoteRefUpdate[remoteName=refs/meta/config, NOT_ATTEMPTED, (null)...179bd8570961db4aa2b5a55cb5ffe96ebf6382c5, srcRef=refs/meta/config, message=null]] [2015-07-14 15:45:22,183] [e9599e87] Cannot replicate to gerrit2@git.example.com:/usr/git/gerrit.git org.eclipse.jgit.errors.TransportException: gerrit2@git.example.com:/usr/git/gerrit.git: connection failed at org.eclipse.jgit.transport.JschSession$JschProcess.<init>(JschSession.java:153) at org.eclipse.jgit.transport.JschSession$JschProcess.<init>(JschSession.java:119) at org.eclipse.jgit.transport.JschSession.exec(JschSession.java:92) at org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection.<init>(TransportGitSsh.java:320) at org.eclipse.jgit.transport.TransportGitSsh.openPush(TransportGitSsh.java:166) at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:154) at org.eclipse.jgit.transport.Transport.push(Transport.java:1200) at org.eclipse.jgit.transport.Transport.push(Transport.java:1246) at com.googlesource.gerrit.plugins.replication.PushOne.pushVia(PushOne.java:399) at com.googlesource.gerrit.plugins.replication.PushOne.runImpl(PushOne.java:371) at com.googlesource.gerrit.plugins.replication.PushOne.runPushOperation(PushOne.java:286) at com.googlesource.gerrit.plugins.replication.PushOne.access$000(PushOne.java:81) at com.googlesource.gerrit.plugins.replication.PushOne$1.call(PushOne.java:256) at com.googlesource.gerrit.plugins.replication.PushOne$1.call(PushOne.java:253) 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.git.PerThreadRequestScope$Propagator$1.call(PerThreadRequestScope.java:75) at com.googlesource.gerrit.plugins.replication.PushOne.run(PushOne.java:253) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:379) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) [2015-07-14 15:47:22,183] [e9599e87] Replication to gerrit2@git.example.com:/usr/git/gerrit.git started... [2015-07-14 15:47:22,184] [e9599e87] Push to gerrit2@git.example.com:/usr/git/gerrit.git references: [RemoteRefUpdate[remoteName=refs/meta/config, NOT_ATTEMPTED, (null)...179bd8570961db4aa2b5a55cb5ffe96ebf6382c5, srcRef=refs/meta/config, message=null]] [2015-07-14 15:47:22,273] [e9599e87] Cannot replicate to gerrit2@git.example.com:/usr/git/gerrit.git org.eclipse.jgit.errors.TransportException: gerrit2@git.example.com:/usr/git/gerrit.git: connection failed at org.eclipse.jgit.transport.JschSession$JschProcess.<init>(JschSession.java:153) at org.eclipse.jgit.transport.JschSession$JschProcess.<init>(JschSession.java:119) at org.eclipse.jgit.transport.JschSession.exec(JschSession.java:92) at org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection.<init>(TransportGitSsh.java:320) at org.eclipse.jgit.transport.TransportGitSsh.openPush(TransportGitSsh.java:166) at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:154) at org.eclipse.jgit.transport.Transport.push(Transport.java:1200) at org.eclipse.jgit.transport.Transport.push(Transport.java:1246) at com.googlesource.gerrit.plugins.replication.PushOne.pushVia(PushOne.java:399) at com.googlesource.gerrit.plugins.replication.PushOne.runImpl(PushOne.java:371) at com.googlesource.gerrit.plugins.replication.PushOne.runPushOperation(PushOne.java:286) at com.googlesource.gerrit.plugins.replication.PushOne.access$000(PushOne.java:81) at com.googlesource.gerrit.plugins.replication.PushOne$1.call(PushOne.java:256) at com.googlesource.gerrit.plugins.replication.PushOne$1.call(PushOne.java:253) 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.git.PerThreadRequestScope$Propagator$1.call(PerThreadRequestScope.java:75) at com.googlesource.gerrit.plugins.replication.PushOne.run(PushOne.java:253) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:379) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) [2015-07-14 15:49:22,274] [e9599e87] Replication to gerrit2@git.example.com:/usr/git/gerrit.git started... [2015-07-14 15:49:22,275] [e9599e87] Push to gerrit2@git.example.com:/usr/git/gerrit.git references: [RemoteRefUpdate[remoteName=refs/meta/config, NOT_ATTEMPTED, (null)...179bd8570961db4aa2b5a55cb5ffe96ebf6382c5, srcRef=refs/meta/config, message=null]] [2015-07-14 15:49:23,084] [e9599e87] Created remote repository: gerrit2@git.example.com:/usr/git/gerrit.git [2015-07-14 15:49:23,084] [e9599e87] Missing repository created; retry replication to gerrit2@git.example.com:/usr/git/gerrit.git [2015-07-14 15:51:23,084] [e9599e87] Replication to gerrit2@git.example.com:/usr/git/gerrit.git started... [2015-07-14 15:51:23,085] [e9599e87] Push to gerrit2@git.example.com:/usr/git/gerrit.git references: [RemoteRefUpdate[remoteName=refs/meta/config, NOT_ATTEMPTED, (null)...179bd8570961db4aa2b5a55cb5ffe96ebf6382c5, srcRef=refs/meta/config, message=null]] [2015-07-14 15:51:23,251] [e9599e87] Replication to gerrit2@git.example.com:/usr/git/gerrit.git completed in 166 msre;o
Jul 20, 2015
I think this is related to create missing repository on the replication destination by the parameter "remote.NAME.createMissingRepositories" [1]. Can you try setting this to true and retry your replication and make sure on your first replication of a repository that the repository is created on the destination and it is not empty. [1] https://gerrit.googlesource.com/plugins/replication/+/stable-2.11/src/main/resources/Documentation/config.md
Jul 20, 2015
when set the parameter "remote.NAME.createMissingRepositories" to true, the error "push not permitted" disappear, but the error "connection failed" still happens 2 ~ 3 times before each project been created on destination server successfully.
Jul 21, 2015
what's the default timeout value gerrit set to connecting the git server?
Jul 21, 2015
setting the parameter "timeout" to 360 but looks it doesn't work well. the connection still failed immediately。
Jul 28, 2015
I think you might be missing the adminURL parameter for this remote slave, I am quoting below the description [1] of this parameter. If you ensure createMissingRepositories and adminUrl are set, I think you should resolve these errors. For the timeout, by default it is unlimited [1] if not specified. [1] https://gerrit.googlesource.com/plugins/replication/+/stable-2.11/src/main/resources/Documentation/config.md remote.NAME.adminUrl Address of the alternative remote server only for repository creation. Multiple URLs may be specified within a single remote block, listing different destinations which share the same settings. The adminUrl can be used as an ssh alternative to the url option, but only related to repository creation. If not specified, the repository creation tries to follow the default way through the url value specified. It is useful when the remote.NAME.url protocols do not allow repository creation although their usage is mandatory in the local environment. In that case, an alternative SSH url could be specified to repository creation. |
|
| ► Sign in to add a comment |