El proyecto Gerrit no se replica en bitbucket, ERROR: el canal no está abierto

Uno de nuestros proyectos Gerrit dejó de funcionar después de una date determinada con el siguiente error:

Error de los loggings de Gerrit / var / gerrit / logs / error_log: [2016-07-29 17: 59: 51,676]

ERROR com.googlesource.gerrit.plugins.replication.ReplicationQueue: No se puede replicar a git@bitbucket.org: company / product.git org.eclipse.jgit.errors.TransportException: git@bitbucket.org: company / product.git: channel no está abierto en org.eclipse.jgit.transport.JschSession $ JschProcess. (JschSession.java:154) en org.eclipse.jgit.transport.JschSession $ JschProcess. (JschSession.java:118) en org.eclipse.jgit.transport.JschSession .exec (JschSession.java:91) en org.eclipse.jgit.transport.TransportGitSsh $ SshPushConnection. (TransportGitSsh.java:306) en org.eclipse.jgit.transport.TransportGitSsh.openPush (TransportGitSsh.java:152) en org .eclipse.jgit.transport.PushProcess.execute (PushProcess.java:154) en org.eclipse.jgit.transport.Transport.push (Transport.java:1167) en org.eclipse.jgit.transport.Transport.push (Transporte .java: 1213) en com.googlesource.gerrit.plugins.replication.PushOne.pushVia (PushOne.java:307) en com.googlesource.gerrit.plugins.replication.PushOne.runImpl (PushOne.java:252) en com. googlesource.gerrit.plugins.replication.PushOne.runPushOperation (PushOne.java:207) en com.googlesource.gerrit.plugins.replication.PushOne.access $ 000 (PushOne.java:71) en com.googlesource.gerrit.plugins.replication .PushOne $ 1.call (PushO ne.java:186) en com.googlesource.gerrit.plugins.replication.PushOne $ 1.call (PushOne.java:183) en com.google.gerrit.server.util.RequestScopePropagator $ 5.call (RequestScopePropagator.java:222) en com.google.gerrit.server.util.RequestScopePropagator $ 4.call (RequestScopePropagator.java:201) en com.google.gerrit.server.git.PerThreadRequestScope $ Propagator $ 1.call (PerThreadRequestScope.java:75) en com.googlesource .gerrit.plugins.replication.PushOne.run (PushOne.java:183) en java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:471) en java.util.concurrent.FutureTask.run (FutureTask.java : 262) en java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201 (ScheduledThreadPoolExecutor.java:178) en java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:292) en com.google.gerrit.server .git.WorkQueue $ Task.run (WorkQueue.java:337) en java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145) en java.uti l.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:615) en java.lang.Thread.run (Thread.java:745) Causado por: com.jcraft.jsch.JSchException: el canal no está abierto. en com.jcraft.jsch.Channel.connect (Channel.java:197) en org.eclipse.jgit.transport.JschSession $ JschProcess. (JschSession.java:150) … 25 más

Nuestra versión de Gerrit está instalada 2.6.1 en la versión 6.8 de CentOS en AWS.

Mi configuration de replicación gerrit es:

[remote "bitbucket"] url = git@bitbucket.org:qpidhealth/${name}.git push = +refs/heads/*:refs/heads/* push = +refs/tags/*:refs/tags/* threads = 2 authGroup = Replication 

¿Algunas ideas? ¡Gracias por adelantado!

Este es el problema conocido. Este problema es causado por SSH usado bajo el capó por Git. Bitbucket inhabilitó la multiplexación SSH, como resultado, recibimos este error. Hay algunas soluciones sugeridas, pero ninguna de ellas funciona para mí. https://community.atlassian.com/t5/Bitbucket-questions/Can-t-repo-sync-anymore/qaq-p/354231

Así que decidí probar HTTPS y funciona.

En primer lugar, debe agregar una sección remota al file replication.config

 [remote "bitbucket"] url = https://USER@bitbucket.org/USER/${name}.git push = +refs/tags/*:refs/tags/* push = +refs/heads/*:refs/heads/* mirror = true projects = NameOfYourProject replicateOnStartup = true replicatePermissions = false 

En segundo lugar, configure sus cnetworkingenciales Bitbucket en el etc/secure.config la siguiente manera

 [remote "bitbucket"] password = yourBitbucketPassword 

Y ahora vuelve a cargar la configuration del complemento e intenta replicar un repository.

He escrito un artículo sobre cómo configurar la replicación a través de HTTPS. Consulte este para get más detalles sobre el process de configuration. https://crosp.net/blog/administration/devops/setting-gerrit-bitbucket-replication-https/

Experimenté un problema relacionado (no estoy seguro de qué tan cerca) al encontrar su pregunta buscando en Google "org.eclipse.jgit.api.errors.TransportException channel is not opened", que también me indicó:

Lo siento, la siguiente no es una respuesta definitiva en absoluto, pero al echar un vistazo rápido a esos indicadores me pareció que esto era un problema con Bitbucket y no con mi código. De hecho, simplemente reintervine mi aplicación y completó con éxito el paso que anteriormente causaba TransportException. Entonces, como solución alternativa para manejar mejor este posible problema, planeo capturar la exception y volver a intentarlo una o dos veces más (con algo de espera en el medio).