Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-13480

HotRod client: NPE in ChannelPool.acquire, HotRodOperation.scheduleRead

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • 12.1.7.Final
    • Hot Rod
    • 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
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            calohmn-bsi Carsten Lohmann (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: