Details
-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
12.1.7.Final
-
None
Description
We are getting this exception several times a week:
java.lang.NullPointerException: null at org.infinispan.client.hotrod.impl.transport.netty.ChannelPool.acquire(ChannelPool.java:77) at org.infinispan.client.hotrod.impl.transport.netty.ChannelFactory.fetchChannelAndInvoke(ChannelFactory.java:270) at org.infinispan.client.hotrod.impl.transport.netty.ChannelFactory.fetchChannelAndInvoke(ChannelFactory.java:324) at org.infinispan.client.hotrod.impl.operations.AbstractKeyOperation.fetchChannelAndInvoke(AbstractKeyOperation.java:41) at org.infinispan.client.hotrod.impl.operations.RetryOnFailureOperation.execute(RetryOnFailureOperation.java:61) at org.infinispan.client.hotrod.impl.RemoteCacheImpl.getAsync(RemoteCacheImpl.java:561) at org.eclipse.hono.deviceconnection.infinispan.client.BasicCache.lambda$get$9(BasicCache.java:194) [...]
There has been one occasion where we got this NPE several times in a row:
java.lang.NullPointerException: null at org.infinispan.client.hotrod.impl.operations.HotRodOperation.scheduleRead(HotRodOperation.java:100) at org.infinispan.client.hotrod.impl.operations.StatsAffectingRetryingOperation.scheduleRead(StatsAffectingRetryingOperation.java:31) at org.infinispan.client.hotrod.impl.operations.GetOperation.executeOperation(GetOperation.java:35) at org.infinispan.client.hotrod.impl.operations.RetryOnFailureOperation.invoke(RetryOnFailureOperation.java:75) at org.infinispan.client.hotrod.impl.transport.netty.ChannelPool$TimeoutCallback.invoke(ChannelPool.java:324) at org.infinispan.client.hotrod.impl.transport.netty.ChannelPool.lambda$activateChannel$1(ChannelPool.java:241) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:384) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source)
It seems to me, both are related. I guess in both cases "channel.pipeline().get(HeaderDecoder.class)" is null.
We have seen these exceptions during load-tests, in the ramp-up phase.
Related Hot Rod client config properties we use:
useSsl: true connectTimeout: 500 socketTimeout: 500 connectionPoolMinIdle: 2 connectionPoolMaxActive: 10 connectionPoolMaxWait: 500 defaultExecutorFactoryPoolSize: 200