Bug 1364916 - NPE thrown during put to protobuf metadata cache via Hot Rod
Summary: NPE thrown during put to protobuf metadata cache via Hot Rod
Keywords:
Status: VERIFIED
Alias: None
Product: JBoss Data Grid 6
Classification: JBoss
Component: Server
Version: 6.6.1
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: CR1
: 6.6.1
Assignee: Tristan Tarrant
QA Contact: Martin Gencur
URL:
Whiteboard:
: 1364070 (view as bug list)
Depends On:
Blocks: 1364070
TreeView+ depends on / blocked
 
Reported: 2016-08-08 08:11 UTC by Jiri Holusa
Modified: 2022-03-03 21:26 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Jiri Holusa 2016-08-08 08:11:30 UTC
During testing of remote-query quickstart, I get following exception during the run. Notice that other quickstarts (HotRod endpoint) are working fine, so the problem is related to remote querying, not remote put itself.

09:52:28,892 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (HotRodServerWorker-1) ISPN000136: Error executing command PutKeyValueCommand, writing keys [[B@550ecabc]: java.lang.NullPointerException
	at org.infinispan.interceptors.compat.BaseTypeConverterInterceptor.visitPutKeyValueCommand(BaseTypeConverterInterceptor.java:73) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:105) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:74) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:43) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:66) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:43) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:336) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1610) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.CacheImpl.putInternal(CacheImpl.java:1081) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.CacheImpl.put(CacheImpl.java:1072) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.DecoratedCache.put(DecoratedCache.java:491) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.AbstractDelegatingAdvancedCache.put(AbstractDelegatingAdvancedCache.java:231) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.hotrod.CacheDecodeContext.put(CacheDecodeContext.scala:211) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.hotrod.HotRodDecoder.org$infinispan$server$hotrod$HotRodDecoder$$decodeValue(HotRodDecoder.scala:140) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.hotrod.HotRodDecoder$$anonfun$decode$1.apply$mcV$sp(HotRodDecoder.scala:54) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.hotrod.HotRodDecoder.wrapSecurity(HotRodDecoder.scala:219) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.hotrod.HotRodDecoder.decode(HotRodDecoder.scala:49) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:362) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:141) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at org.infinispan.server.hotrod.HotRodDecoder.org$infinispan$server$core$transport$StatsChannelHandler$$super$channelRead(HotRodDecoder.scala:32) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.core.transport.StatsChannelHandler$class.channelRead(StatsChannelHandler.scala:32) [infinispan-server-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.hotrod.HotRodDecoder.channelRead(HotRodDecoder.scala:32) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:341) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:327) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:116) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:494) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:461) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:378) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:350) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_66]

Comment 1 Anna Manukyan 2016-08-08 08:21:03 UTC
The same issue appears while running the HotRodRemoteQueryIT test which extends org.infinispan.server.test.query.RemoteQueryIT test. 
The test throws this exception: 

org.infinispan.client.hotrod.exceptions.HotRodClientException: java.lang.NullPointerException
	at org.infinispan.client.hotrod.impl.protocol.Codec20.checkForErrorsInResponseStatus(Codec20.java:343)
	at org.infinispan.client.hotrod.impl.protocol.Codec20.readPartialHeader(Codec20.java:133)
	at org.infinispan.client.hotrod.impl.protocol.Codec20.readHeader(Codec20.java:119)
	at org.infinispan.client.hotrod.impl.operations.HotRodOperation.readHeaderAndValidate(HotRodOperation.java:56)
	at org.infinispan.client.hotrod.impl.operations.AbstractKeyValueOperation.sendPutOperation(AbstractKeyValueOperation.java:56)
	at org.infinispan.client.hotrod.impl.operations.PutOperation.executeOperation(PutOperation.java:33)
	at org.infinispan.client.hotrod.impl.operations.RetryOnFailureOperation.execute(RetryOnFailureOperation.java:56)
	at org.infinispan.client.hotrod.impl.RemoteCacheImpl.put(RemoteCacheImpl.java:323)
	at org.infinispan.client.hotrod.impl.RemoteCacheSupport.put(RemoteCacheSupport.java:79)
	at org.infinispan.server.test.query.RemoteQueryBaseIT.setUp(RemoteQueryBaseIT.java:55)
	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:497)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
	at org.jboss.arquillian.junit.Arquillian$StatementLifecycleExecutor.invoke(Arquillian.java:459)
	at org.jboss.arquillian.container.test.impl.execution.BeforeLifecycleEventExecuter.on(BeforeLifecycleEventExecuter.java:35)
	at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)


And the following exception is thrown on the server:

[0m[31m10:18:54,744 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (HotRodServerWorker-18) ISPN000136: Error executing command PutKeyValueCommand, writing keys [[B@5ef79874]: java.lang.NullPointerException
	at org.infinispan.interceptors.compat.BaseTypeConverterInterceptor.visitPutKeyValueCommand(BaseTypeConverterInterceptor.java:73) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:105) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:74) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:43) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:66) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:43) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:336) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1610) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.CacheImpl.putInternal(CacheImpl.java:1081) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.CacheImpl.put(CacheImpl.java:1072) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.DecoratedCache.put(DecoratedCache.java:491) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.AbstractDelegatingAdvancedCache.put(AbstractDelegatingAdvancedCache.java:231) [infinispan-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.hotrod.CacheDecodeContext.put(CacheDecodeContext.scala:211) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.hotrod.HotRodDecoder.org$infinispan$server$hotrod$HotRodDecoder$$decodeValue(HotRodDecoder.scala:140) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.hotrod.HotRodDecoder$$anonfun$decode$1.apply$mcV$sp(HotRodDecoder.scala:54) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.hotrod.HotRodDecoder.wrapSecurity(HotRodDecoder.scala:219) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.hotrod.HotRodDecoder.decode(HotRodDecoder.scala:49) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:362) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:141) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at org.infinispan.server.hotrod.HotRodDecoder.org$infinispan$server$core$transport$StatsChannelHandler$$super$channelRead(HotRodDecoder.scala:32) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.core.transport.StatsChannelHandler$class.channelRead(StatsChannelHandler.scala:32) [infinispan-server-core-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at org.infinispan.server.hotrod.HotRodDecoder.channelRead(HotRodDecoder.scala:32) [infinispan-server-hotrod-6.4.1.ER1-redhat-1.jar:6.4.1.ER1-redhat-1]
	at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:341) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:327) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:116) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:494) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:461) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:378) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:350) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_66]

Comment 2 Anna Manukyan 2016-08-08 08:57:12 UTC
The same issue appears also when running the hotrod client tests with Karaf. The following exception is thrown: 

org.infinispan.client.hotrod.exceptions.HotRodClientException: java.lang.NullPointerException
	at org.infinispan.client.hotrod.impl.protocol.Codec20.checkForErrorsInResponseStatus(Codec20.java:343)
	at org.infinispan.client.hotrod.impl.protocol.Codec20.readPartialHeader(Codec20.java:133)
	at org.infinispan.client.hotrod.impl.protocol.Codec20.readHeader(Codec20.java:119)
	at org.infinispan.client.hotrod.impl.operations.HotRodOperation.readHeaderAndValidate(HotRodOperation.java:56)
	at org.infinispan.client.hotrod.impl.operations.AbstractKeyValueOperation.sendPutOperation(AbstractKeyValueOperation.java:56)
	at org.infinispan.client.hotrod.impl.operations.PutOperation.executeOperation(PutOperation.java:33)
	at org.infinispan.client.hotrod.impl.operations.RetryOnFailureOperation.execute(RetryOnFailureOperation.java:56)
	at org.infinispan.client.hotrod.impl.RemoteCacheImpl.put(RemoteCacheImpl.java:323)
	at org.infinispan.client.hotrod.impl.RemoteCacheSupport.put(RemoteCacheSupport.java:79)
	at org.infinispan.server.test.client.hotrod.osgi.RemoteCacheOsgiIT.testAttributeQuery(RemoteCacheOsgiIT.java:136)

Comment 3 Vojtech Juranek 2016-08-08 11:50:26 UTC
... and it fails also in testsuite, org.infinispan.server.test.query.RemoteQuery* tests fail with the same error :-)

Comment 4 Vojtech Juranek 2016-08-08 13:01:52 UTC
very likely culprit of other testsuite failures e.g org.infinispan.server.test.query.ManualIndexingIT and others

Comment 5 Gustavo Fernandes 2016-08-08 18:46:18 UTC
The commit that introduced the issue was 97322826979c97d1fe926f9692fcd19b4c13fac0

Comment 8 Martin Gencur 2016-08-17 08:48:47 UTC
*** Bug 1364070 has been marked as a duplicate of this bug. ***


Note You need to log in before you can comment on or make changes to this bug.