Just to follow up on this, I verified the issue occurs with the Datastax Cassandra Java driver version 3.11.0 but works with 3.10.2. I believe this to be caused by JAVA-2924 [1], and after reviewing the release notes and testing, I wrote up NIFI-9318 [2] to cover the downgrade.
Regards, Matt [1] https://datastax-oss.atlassian.net/browse/JAVA-2924 [2] https://issues.apache.org/jira/browse/NIFI-9318 On Thu, Sep 30, 2021 at 2:16 PM Matt Burgess <mattyb...@apache.org> wrote: > > Eduardo, > > The version of the Datastax Cassandra JDBC driver in 1.14.0 was > upgraded from 3.3.0 to 3.11.0 under NIFI-8295 [1]. According to > Microsoft docs [2] this should be compatible with CosmosDB. However > there were some code changes made as well, it appears that the > endpoints must now be backed by a proxy that supports SNI routing > [3,4]. Is your CosmosDB instance configured that way? I don't know > anything about SNI and barely anything about CosmosDB so I won't be > much help there, but I do plan on learning about it because those code > changes may not be valid or may need to be tied to a configurable > value. > > A possible workaround is to replace the Cassandra NARs with 1.13.2 > versions [5,6,7] and see if those work. > > Regards, > Matt > > [1] https://issues.apache.org/jira/browse/NIFI-8295 > [2] > https://docs.microsoft.com/en-us/azure/cosmos-db/cassandra/cassandra-support > [3] https://github.com/apache/nifi/pull/4946/files > [4] > https://docs.datastax.com/en/drivers/java/3.11/com/datastax/driver/core/SniEndPoint.html > [5] > https://repository.apache.org/content/repositories/releases/org/apache/nifi/nifi-cassandra-nar/1.13.2/nifi-cassandra-nar-1.13.2.nar > [6] > https://repository.apache.org/content/repositories/releases/org/apache/nifi/nifi-cassandra-services-api-nar/1.13.2/nifi-cassandra-services-api-nar-1.13.2.nar > [7] > https://repository.apache.org/content/repositories/releases/org/apache/nifi/nifi-cassandra-services-nar/1.13.2/nifi-cassandra-services-nar-1.13.2.nar > > On Thu, Sep 30, 2021 at 1:39 PM Eduardo Fontes <eduardo.fon...@gmail.com> > wrote: > > > > Hi all, > > > > I'm using CassandraSassionProvider 1.12.1 with CosmosDB Cassandra API in > > Azure with no problem. > > > > When I tried to migrate the flow to 1.14 NiFi version, it doesn't connect. > > I got this error in log: > > > > 2021-09-30 14:30:46,449 ERROR [Timer-Driven Process Thread-7] > > o.a.n.c.s.StandardControllerServiceNode > > StandardControllerServiceNode[service=CassandraSessionProvider[id=3139b034-00a6-30fc-b5bd-cee7c5e5d4c8], > > name=CassandraSessionProvider, active=true] Failed to invoke > > @OnEnabled method due to > > com.datastax.driver.core.exceptions.NoHostAvailableException > > : All host(s) tried for query failed (tried: > > redacted.cassandra.cosmos.azure.com/redacted:10350 > > (com.datastax.driver.core.exceptions.TransportException: [ > > redacted.cassandra.cosmos.azure.com/redacted:10350] > > Channel has been closed)): {} > > com.datastax.driver.core.exceptions.NoHostAvailableException: > > All host(s) tried for query failed (tried: > > redacted.cassandra.cosmos.azure.com/redacted:10350 > > (com.datastax.driver.core.exceptions.TransportException: [ > > redacted.cassandra.cosmos.azure.com/redacted:10350] > > Channel has been closed)) > > > > at > > com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:270) > > > > at > > com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:109) > > > > at > > com.datastax.driver.core.Cluster$Manager.negotiateProtocolVersionAndConnect(Cluster.java:1813) > > at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1726) > > at com.datastax.driver.core.Cluster.init(Cluster.java:214) > > at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:387) > > at com.datastax.driver.core.Cluster.connect(Cluster.java:338) > > > > at > > org.apache.nifi.service.CassandraSessionProvider.connectToCassandra(CassandraSessionProvider.java:255) > > > > at > > org.apache.nifi.service.CassandraSessionProvider.onEnabled(CassandraSessionProvider.java:175) > > > > at jdk.internal.reflect.GeneratedMethodAccessor776.invoke(Unknown Source) > > > > at > > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > > > > at > > org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:145) > > > > at > > org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:133) > > > > at > > org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:78) > > > > at > > org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotation(ReflectionUtils.java:55) > > > > at > > org.apache.nifi.controller.service.StandardControllerServiceNode$2.run(StandardControllerServiceNode.java:456) > > at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110) > > > > 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 > > 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) > > 2021-09-30 14:30:46,450 ERROR [Timer-Driven Process Thread-7] > > o.a.n.c.s.StandardControllerServiceNode Failed to invoke @OnEnabled > > method of CassandraSessionProvider[id=3139b034-00a6-30fc-b5bd-cee7c5e5d4c8] > > due to com.datastax.driver.core.exceptions.NoHostAvailableException > > : All host(s) tried for query failed (tried: > > redacted.cassandra.cosmos.azure.com/redacted:10350 > > (com.datastax.driver.core.exceptions.TransportException: [ > > redacted.cassandra.cosmos.azure.com/redacted:10350] > > Channel has been closed)) > > > > > > Someone with same problem? > > > > Thanks. > > Eduardo Fontes