[
https://issues.apache.org/jira/browse/NIFI-11927?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17754631#comment-17754631
]
ASF subversion and git services commented on NIFI-11927:
--------------------------------------------------------
Commit 3ad9f8e695ee998e33f99e3dac742efc1f0910f9 in nifi's branch
refs/heads/support/nifi-1.23 from David Handermann
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=3ad9f8e695 ]
NIFI-11927 Downgraded SSHD from 2.10.0 to 2.9.2 for Registry (#7606)
- SSHD 2.10.0 is not compatible with JGit 5.13
> NiFi Registry fails to push flow to GIT using SSH
> -------------------------------------------------
>
> Key: NIFI-11927
> URL: https://issues.apache.org/jira/browse/NIFI-11927
> Project: Apache NiFi
> Issue Type: Bug
> Components: NiFi Registry
> Affects Versions: 1.22.0, 1.23.0
> Environment: Java 17 & 11, CentOS 9, kernel 5.14.0-44.el9.x86_64
> Reporter: Daniel Salwerowicz
> Assignee: David Handermann
> Priority: Major
> Fix For: 1.24.0, 1.23.1
>
> Attachments: image-2023-08-10-08-53-15-944.png
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> I have been successfully running NiFi Registry version 1.20.0 (and others
> before it) for about a year now. Now I needed to switch server that Registry
> runs on, since the old one was outdated, and decided to set up NiFi Registry
> version 1.22.0.
> The setup worked great and NiFi seems to have been running properly. However
> I recently noticed that it wasn't pushing anything to GIT. The changes are
> made, new versions are committed, they show up both in Registry GUI as well
> as the NiFi instance, but when I try to fetch some version it will not allow
> me giving me the following error:
> !image-2023-08-10-08-53-15-944.png!
> I started investigating the issue and noticed that the GIT repository that
> NiFi Registry was using was several versions ahead of origin, no version got
> pushed to the GIT repo.
> I investigated the logs and noticed following messages show up when I make
> new version in NiFi and commit it to registry:
> {code:java}
> 2023-08-10 07:52:03,317 WARN [NiFi Registry Web Server-18]
> javax.persistence.spi javax.persistence.spi::No valid providers found.
> 2023-08-10 07:52:05,120 INFO [GitFlowMetaData Push thread]
> o.a.s.c.u.s.e.EdDSASecurityProviderRegistrar getOrCreateProvider(EdDSA)
> created instance of net.i2p.crypto.eddsa.EdDSASecurityProvider
> 2023-08-10 07:52:05,326 INFO [GitFlowMetaData Push thread]
> o.a.s.c.i.DefaultIoServiceFactoryFactory No detected/configured
> IoServiceFactoryFactory; using Nio2ServiceFactoryFactory
> 2023-08-10 07:52:05,351 ERROR [GitFlowMetaData Push thread]
> o.a.n.r.p.flow.git.GitFlowMetaData Failed to push commits to origin due to
> org.eclipse.jgit.api.errors.TransportException:
> git@<OMITTED_FOR_PRIVACY>nifi/nifi-flows.git: remote hung up unexpectedly
> org.eclipse.jgit.api.errors.TransportException:
> git@<OMITTED_FOR_PRIVACY>nifi/nifi-flows.git: remote hung up unexpectedly
> at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:147)
> at
> org.apache.nifi.registry.provider.flow.git.GitFlowMetaData.lambda$startPushThread$1(GitFlowMetaData.java:299)
> at
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
> at
> java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
> at
> java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
> at java.base/java.lang.Thread.run(Thread.java:833)
> Caused by: org.eclipse.jgit.errors.TransportException:
> git@<OMITTED_FOR_PRIVACY>nifi/nifi-flows.git: remote hung up unexpectedly
> at
> org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection.<init>(TransportGitSsh.java:382)
> at
> org.eclipse.jgit.transport.TransportGitSsh.openPush(TransportGitSsh.java:159)
> at
> org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:127)
> at org.eclipse.jgit.transport.Transport.push(Transport.java:1384)
> at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:137)
> ... 7 common frames omitted
> Caused by: java.lang.NoSuchMethodError: 'java.lang.Object
> org.apache.sshd.client.future.ConnectFuture.verify()'
> at
> org.eclipse.jgit.transport.sshd.SshdSession.connect(SshdSession.java:189)
> at
> org.eclipse.jgit.transport.sshd.SshdSession.connect(SshdSession.java:142)
> at
> org.eclipse.jgit.transport.sshd.SshdSession.connect(SshdSession.java:99)
> at
> org.eclipse.jgit.transport.sshd.SshdSessionFactory.getSession(SshdSessionFactory.java:235)
> at
> org.eclipse.jgit.transport.sshd.SshdSessionFactory.getSession(SshdSessionFactory.java:1)
> at
> org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:107)
> at
> org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection.<init>(TransportGitSsh.java:358)
> ... 11 common frames omitted {code}
> I think the line {{Caused by: java.lang.NoSuchMethodError: 'java.lang.Object
> org.apache.sshd.client.future.ConnectFuture.verify()'}} is what's causing the
> issue with pushing to GIT. This does not show up on the old Registry instance
> when I push to that.
>
> I checked the setup and compared it to the previous version running on old
> server. They have exactly the same configuration, save for new one running on
> Java 17 not 11 (although I tried running it on 11 too).
>
> The SSH keys are valid and recognized by our Gitlab instance, I can push
> manually as the nifi user, there are literally no differences between the
> configuration on one server compared to another. I even checked the
> configuration inside .git folder in the flow_storage directory, it was the
> same as on the other server. The ~/.ssh folder for nifi user has similar data
> between two servers, both have keys and known hosts set up, with right
> permissions, etc.
> I decided to try running version 1.20.0 of registry on new server, and it
> seems to have worked immediately, without any issue, it manages to push to
> GIT on its own, with no changes to config. I tested version 1.23 as well and
> it had the same issue, I haven't tested 1.21.0 though.
>
> For more information, here is the structure I have:
> {code:java}
> ├── nifi-registry-1.20.0
> │ ├── bin
> │ ├── conf
> │ ├── docs
> │ ├── ext
> │ ├── lib
> │ ├── logs
> │ ├── run
> │ └── work
> ├── nifi-registry-1.23.0
> │ ├── bin
> │ ├── conf
> │ ├── docs
> │ ├── ext
> │ ├── lib
> │ ├── logs
> │ ├── run
> │ └── work
> └── nifi-registry-files
> ├── authorization-files
> │ ├── authorizations.xml
> │ ├── authorizers.xml
> │ ├── login-identity-providers.xml
> │ └── users.xml
> ├── certificate-files
> │ ├── keystore.jks
> │ └── truststore.jks
> ├── configuration-files
> │ ├── providers.xml
> │ └── registry-aliases.xml
> ├── database-drivers
> │ └── mariadb-java-client-2.7.4.jar
> ├── extension-bundles
> └── flow-storage
> └── Buckets... {code}
>
> Contents of the providers.xml:
> {code:java}
> <providers>
> <flowPersistenceProvider>
>
> <class&gt;org.apache.nifi.registry.provider.flow.git.GitFlowPersistenceProvider</class&gt;
> <property name="Flow Storage
> Directory">/disk1/nifi-registry/nifi-registry-files/flow-storage</property>
> <property name="Remote To Push">origin</property>
> <property name="Remote Access User"></property>
> <property name="Remote Access Password"></property>
> <property name="Remote Clone Repository"></property>
> </flowPersistenceProvider>
> <extensionBundlePersistenceProvider>
>
> <class&gt;org.apache.nifi.registry.provider.extension.FileSystemBundlePersistenceProvider</class&gt;
> <property name="Extension Bundle Storage
> Directory">/disk1/nifi-registry/nifi-registry-files/extension-bundles</property>
> </extensionBundlePersistenceProvider>
> </providers>{code}
>
> Contents of the .git/config file in the flow_storage directory:
> {code:java}
> [core]
> repositoryformatversion = 0
> filemode = true
> bare = false
> logallrefupdates = true
> [http]
> sslVerify = false
> proxy = http://<PROXY_URL>:3128
> [https]
> sslVerify = false
> proxy = http://<PROXY_URL>:3128
> [user]
> name = nifi_user
> email = OMITTED_FOR_PRIVACY
> [remote "origin"]
> url = git@<OMITTED_FOR_PRIVACY>nifi/nifi-flows.git
> fetch = +refs/heads/*:refs/remotes/origin/*
> [branch "master"]
> remote = origin
> merge = refs/heads/master {code}
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)