nifi-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bryan Bende <bbe...@gmail.com>
Subject Re: Bug with Redis Distributed Map Cache in NiFi 1.8.0?
Date Thu, 08 Nov 2018 23:30:01 GMT
Hello,

Thanks for bringing this to our attention.

Most likely this happened as a result of upgrading the version of
spring-data-redis used by the redis bundle [1].

Looks like it should be an easy fix, but unfortunately wouldn't be
available in a release for a little while.

Thanks,

Bryan

[1] https://issues.apache.org/jira/browse/NIFI-4811
On Thu, Nov 8, 2018 at 2:52 PM Ken Tore Tallakstad <tallakstad@gmail.com> wrote:
>
> Hi,
>
> We just upgraded from NiFi 1.7.1 to 1.8.0, and discovered that Processor PutDistributedMapCache
1.8.0, configured with "Cache update strategy=Replace if present" now fails to update data
in Redis (our Redis version is 4.0.10). When the update strategy is set to "Keep original"
everything works fine. The error thrown is
>
> 2018-11-08 12:59:03,421 ERROR [Timer-Driven Process Thread-4] o.a.n.p.standard.PutDistributedMapCache
PutDistributedMapCache[id=cc1839c5-4d17-15ff-937a-532b1b2025d1] PutDistributedMapCache[id=cc1839c5-4d17-15ff-937a-532b1b2025d1]
failed to process session due to java.lang.IllegalArgumentException: Option must not be null!;
Processor Administratively Yielded for 1 sec: java.lang.IllegalArgumentException: Option must
not be null!
> java.lang.IllegalArgumentException: Option must not be null!
> at org.springframework.util.Assert.notNull(Assert.java:198)
> at org.springframework.data.redis.connection.jedis.JedisStringCommands.set(JedisStringCommands.java:159)
> at org.springframework.data.redis.connection.DefaultedRedisConnection.set(DefaultedRedisConnection.java:281)
> at org.apache.nifi.redis.service.RedisDistributedMapCacheClientService.lambda$put$3(RedisDistributedMapCacheClientService.java:191)
> at org.apache.nifi.redis.service.RedisDistributedMapCacheClientService.withConnection(RedisDistributedMapCacheClientService.java:344)
> at org.apache.nifi.redis.service.RedisDistributedMapCacheClientService.put(RedisDistributedMapCacheClientService.java:189)
> at sun.reflect.GeneratedMethodAccessor759.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:84)
> at com.sun.proxy.$Proxy146.put(Unknown Source)
> at org.apache.nifi.processors.standard.PutDistributedMapCache.onTrigger(PutDistributedMapCache.java:202)
> at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
> at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1165)
> at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:203)
> at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
> 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)
>
> We have reproduced this with nifi standalone and cluster / redis sentinel and standalone.
In 1.7.1 it works fine. Its a bit of a downer for us. since our flow depends heavily on redis
cache overwrite updates.
> Anyone else encountered this or able to reproduce on 1.8?
>
> best,
>
> KT :)

Mime
View raw message