Some more digging

I restarted my Redis cluster. Created a new RedisConnectionPoolService and
a new RedisDistributedMapCacheClientService.
I created a small test flow: Genereate flowfile -> PutDistributedMapCache
-> AttributeUpdate
No problems, it works but...

I went back to one the other flows where I use a DetectDuplicate process
and I got the following lines in the log

2021-08-06 11:18:21,123 INFO [Timer-Driven Process Thread-13]
o.a.n.r.s.RedisConnectionPoolService
RedisConnectionPoolService[id=160a1056-017b-1000-0000-00005533ce4b]
Connecting to Redis in sentinel mode...
2021-08-06 11:18:21,123 INFO [Timer-Driven Process Thread-13]
o.a.n.r.s.RedisConnectionPoolService
RedisConnectionPoolService[id=160a1056-017b-1000-0000-00005533ce4b] Redis
master = mymaster
2021-08-06 11:18:21,123 INFO [Timer-Driven Process Thread-13]
o.a.n.r.s.RedisConnectionPoolService
RedisConnectionPoolService[id=160a1056-017b-1000-0000-00005533ce4b] Redis
sentinel at redis-01:26379
2021-08-06 11:18:21,123 INFO [Timer-Driven Process Thread-13]
o.a.n.r.s.RedisConnectionPoolService
RedisConnectionPoolService[id=160a1056-017b-1000-0000-00005533ce4b] Redis
sentinel at redis-02:26379
2021-08-06 11:18:21,123 INFO [Timer-Driven Process Thread-13]
o.a.n.r.s.RedisConnectionPoolService
RedisConnectionPoolService[id=160a1056-017b-1000-0000-00005533ce4b] Redis
sentinel at redis-03:26379
2021-08-06 11:18:21,124 INFO [Timer-Driven Process Thread-13]
redis.clients.jedis.JedisSentinelPool Trying to find master from available
Sentinels...
2021-08-06 11:18:21,124 DEBUG [Timer-Driven Process Thread-13]
redis.clients.jedis.JedisSentinelPool Connecting to Sentinel redis-01:26379
2021-08-06 11:18:21,124 WARN [NiFi Web Server-4964]
org.apache.nifi.audit.ProcessorAuditor Unable to record actions: null
2021-08-06 11:18:21,214 INFO [Flow Service Tasks Thread-1]
o.a.nifi.controller.StandardFlowService Saved flow controller
org.apache.nifi.controller.FlowController@33ab3784 // Another save pending
= false
2021-08-06 11:18:31,134 WARN [Timer-Driven Process Thread-13]
redis.clients.jedis.JedisSentinelPool Cannot get master address from
sentinel running @ i-redis-01:26379. Reason: {}. Trying next one.
redis.clients.jedis.exceptions.JedisConnectionException:
javax.net.ssl.SSLException: Read timed out
        at redis.clients.jedis.Connection.flush(Connection.java:342)

So it connects to me Redis Sentinel cluster, but later it somehow trying to
use SSL or what???

kind regards
Jens M. Kofoed

Den fre. 6. aug. 2021 kl. 08.07 skrev Jens M. Kofoed <jmkofoed....@gmail.com
>:

> Hi
>
> I found another WARN in my log, which is about SSLException. However I did
> NOT specified the new property: SSL Context Service
> From the documentation: If specified, this service will be used to create
> an SSL Context that will be used to secure communications; if not
> specified, communications will not be secure
>
> 2021-08-06 07:47:30,166 WARN [Timer-Driven Process Thread-12]
> redis.clients.jedis.JedisSentinelPool Cannot get master address from
> sentinel running @ redis-03:26379. Reason: {}. Trying next one.
> redis.clients.jedis.exceptions.JedisConnectionException:
> javax.net.ssl.SSLException: Read timed out
>         at redis.clients.jedis.Connection.flush(Connection.java:342)
>         at
> redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:269)
>         at redis.clients.jedis.BinaryJedis.select(BinaryJedis.java:787)
>         at
> redis.clients.jedis.BinaryJedis.initializeFromClientConfig(BinaryJedis.java:99)
>         at redis.clients.jedis.BinaryJedis.<init>(BinaryJedis.java:82)
>         at redis.clients.jedis.Jedis.<init>(Jedis.java:54)
>         at
> redis.clients.jedis.JedisSentinelPool.initSentinels(JedisSentinelPool.java:251)
>         at
> redis.clients.jedis.JedisSentinelPool.<init>(JedisSentinelPool.java:205)
>         at
> redis.clients.jedis.JedisSentinelPool.<init>(JedisSentinelPool.java:193)
>         at
> org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createRedisSentinelPool(JedisConnectionFactory.java:411)
>         at
> org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createPool(JedisConnectionFactory.java:393)
>         at
> org.springframework.data.redis.connection.jedis.JedisConnectionFactory.afterPropertiesSet(JedisConnectionFactory.java:348)
>         at
> org.apache.nifi.redis.util.RedisUtils.createConnectionFactory(RedisUtils.java:342)
>         at
> org.apache.nifi.redis.service.RedisConnectionPoolService.getConnection(RedisConnectionPoolService.java:92)
>         at sun.reflect.GeneratedMethodAccessor1212.invoke(Unknown Source)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at
> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:254)
>         at
> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:105)
>         at com.sun.proxy.$Proxy181.getConnection(Unknown Source)
>         at
> org.apache.nifi.redis.service.RedisDistributedMapCacheClientService.withConnection(RedisDistributedMapCacheClientService.java:375)
>         at
> org.apache.nifi.redis.service.RedisDistributedMapCacheClientService.getAndPutIfAbsent(RedisDistributedMapCacheClientService.java:144)
>         at sun.reflect.GeneratedMethodAccessor1211.invoke(Unknown Source)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at
> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:254)
>         at
> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:105)
>         at com.sun.proxy.$Proxy179.getAndPutIfAbsent(Unknown Source)
>         at
> org.apache.nifi.processors.standard.DetectDuplicate.onTrigger(DetectDuplicate.java:183)
>         at
> org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
>         at
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1202)
>         at
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:214)
>         at
> org.apache.nifi.controller.scheduling.AbstractTimeBasedSchedulingAgent.lambda$doScheduleOnce$0(AbstractTimeBasedSchedulingAgent.java:63)
>         at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>         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
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at java.lang.Thread.run(Thread.java:748)
> Caused by: javax.net.ssl.SSLException: Read timed out
>         at sun.security.ssl.Alert.createSSLException(Alert.java:127)
>         at
> sun.security.ssl.TransportContext.fatal(TransportContext.java:324)
>         at
> sun.security.ssl.TransportContext.fatal(TransportContext.java:267)
>         at
> sun.security.ssl.TransportContext.fatal(TransportContext.java:262)
>         at sun.security.ssl.SSLTransport.decode(SSLTransport.java:138)
>         at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1383)
>         at
> sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1291)
>         at
> sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:435)
>         at
> sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:804)
>         at sun.security.ssl.SSLSocketImpl.access$200(SSLSocketImpl.java:73)
>         at
> sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1166)
>         at
> redis.clients.jedis.util.RedisOutputStream.flushBuffer(RedisOutputStream.java:52)
>         at
> redis.clients.jedis.util.RedisOutputStream.flush(RedisOutputStream.java:133)
>         at redis.clients.jedis.Connection.flush(Connection.java:339)
>         ... 40 common frames omitted
> Caused by: java.net.SocketTimeoutException: Read timed out
>         at java.net.SocketInputStream.socketRead0(Native Method)
>         at
> java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
>         at java.net.SocketInputStream.read(SocketInputStream.java:171)
>         at java.net.SocketInputStream.read(SocketInputStream.java:141)
>         at
> sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:457)
>         at
> sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:165)
>         at sun.security.ssl.SSLTransport.decode(SSLTransport.java:109)
>         ... 49 common frames omitted
>
> Kind regards
> Jens M. Kofoed
>
> Den fre. 6. aug. 2021 kl. 06.35 skrev Jens M. Kofoed <
> jmkofoed....@gmail.com>:
>
>> Dear Develovper
>>
>> I'm using many RedisDistributedMapCacheClientService and
>> some RedisConnectionPoolService which connect to my 3 node cluster
>> with Redis sentinels.
>> After I upgraded one of my NiFi servers to 1.14.0 the processors which is
>> using the Redis start having issues. Looking in the logs I got the
>> following errors/WARN.
>>
>> 2021-08-05 13:24:12,556 WARN [Timer-Driven Process Thread-3]
>> o.a.n.controller.tasks.ConnectableTask Administratively Yielding
>> DetectDuplicate[id=feb1f2ff-4f9c-31d7-87c8-e225a80ef03f] due to uncaught
>> Exception: redis.clients.jedis.exceptions.JedisConnectionException: All
>> sentinels down, cannot determine where is mymaster master is running...
>> redis.clients.jedis.exceptions.JedisConnectionException: All sentinels
>> down, cannot determine where is mymaster master is running...
>>         at
>> redis.clients.jedis.JedisSentinelPool.initSentinels(JedisSentinelPool.java:281)
>>         at
>> redis.clients.jedis.JedisSentinelPool.<init>(JedisSentinelPool.java:205)
>>         at
>> redis.clients.jedis.JedisSentinelPool.<init>(JedisSentinelPool.java:193)
>>         at
>> org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createRedisSentinelPool(JedisConnectionFactory.java:411)
>>         at
>> org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createPool(JedisConnectionFactory.java:393)
>>         at
>> org.springframework.data.redis.connection.jedis.JedisConnectionFactory.afterPropertiesSet(JedisConnectionFactory.java:348)
>>         at
>> org.apache.nifi.redis.util.RedisUtils.createConnectionFactory(RedisUtils.java:342)
>>         at
>> org.apache.nifi.redis.service.RedisConnectionPoolService.getConnection(RedisConnectionPoolService.java:92)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         at java.lang.reflect.Method.invoke(Method.java:498)
>>         at
>> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:254)
>>         at
>> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:105)
>>         at com.sun.proxy.$Proxy181.getConnection(Unknown Source)
>>         at
>> org.apache.nifi.redis.service.RedisDistributedMapCacheClientService.withConnection(RedisDistributedMapCacheClientService.java:375)
>>         at
>> org.apache.nifi.redis.service.RedisDistributedMapCacheClientService.getAndPutIfAbsent(RedisDistributedMapCacheClientService.java:144)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         at java.lang.reflect.Method.invoke(Method.java:498)
>>         at
>> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:254)
>>         at
>> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:105)
>>         at com.sun.proxy.$Proxy179.getAndPutIfAbsent(Unknown Source)
>>         at
>> org.apache.nifi.processors.standard.DetectDuplicate.onTrigger(DetectDuplicate.java:183)
>>         at
>> org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
>>         at
>> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1202)
>>         at
>> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:214)
>>         at
>> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:103)
>>         at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>>         at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>>         at
>> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>>         at
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>>         at
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>>         at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>>         at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>>         at java.lang.Thread.run(Thread.java:748)
>>
>> I know the WARN says: All sentinels down, cannot determine where is
>> mymaster master is running... BUT It is not. The Sentinel master is
>> running, I have a 2nd NIFI server running with v. 1.13.2 which is using the
>> same Redis cluster and that one is still working. If I change the server
>> (which has issues in v. 1.14.0) back to 1.13.2 there are no errors. I also
>> tried to change one of the other servers to v. 1.14.0 and it have the same
>> issue.
>>
>> A new feature in v.1.14.0 is the property "SSL Context
>> Service" RedisConnectionPoolService. It says if configured it will use ssl
>> to establish a secure connection, if it's not configured it will not be
>> secure. And It is not configured.
>>
>> Please any help :-)
>>
>> kind regards
>> Jens M. Kofoed
>>
>>

Reply via email to