geode-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dan Smith (JIRA)" <j...@apache.org>
Subject [jira] [Created] (GEODE-3315) NullPointerException creating a copy of a client queue when gemfire.PREFER_SERIALIZED=true
Date Wed, 26 Jul 2017 00:41:00 GMT
Dan Smith created GEODE-3315:
--------------------------------

             Summary: NullPointerException creating a copy of a client queue when gemfire.PREFER_SERIALIZED=true
                 Key: GEODE-3315
                 URL: https://issues.apache.org/jira/browse/GEODE-3315
             Project: Geode
          Issue Type: Bug
          Components: client queues
            Reporter: Dan Smith


In the case of an HARegion, AbstractRegionMap.initialImagePut deserializes the value to set
the haContainer. Normally, that value is a wrapped by a VMCachedDeserializable, and deserializing
it replaces it in the VMCachedDeserializable. With -Dgemfire.PREFER_SERIALIZED=true, the value
is wrapped by a PreferBytesCachedDeserializable and deserializing it creates a copy of the
value. It doesn't replace it in the PreferBytesCachedDeserializable.

So, in this case, the haContainer is being set on a copy of the value, not the value itself.
It has no effect, and the value put into the HARegion has no haContainer.

This is not really an issue until this member needs to provide an initial image for another
member.

At that time, a NullPointerException like this occurs:
{noformat}
[vm3] Caused by: java.lang.NullPointerException
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.cache.tier.sockets.HAEventWrapper.toData(HAEventWrapper.java:287)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2299)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1406)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2067)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2936)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.util.BlobHelper.serializeToBlob(BlobHelper.java:53)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.cache.EntryEventImpl.serialize(EntryEventImpl.java:1969)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.cache.EntryEventImpl.serialize(EntryEventImpl.java:1955)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.cache.PreferBytesCachedDeserializable.<init>(PreferBytesCachedDeserializable.java:69)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.cache.CachedDeserializableFactory.create(CachedDeserializableFactory.java:82)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.cache.AbstractRegionMap.initialImagePut(AbstractRegionMap.java:778)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.cache.InitialImageOperation.processChunk(InitialImageOperation.java:928)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.cache.InitialImageOperation$ImageProcessor.process(InitialImageOperation.java:1249)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.distributed.internal.ReplyMessage.process(ReplyMessage.java:213)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.internal.cache.InitialImageOperation$ImageReplyMessage.process(InitialImageOperation.java:2725)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.distributed.internal.ReplyMessage.dmProcess(ReplyMessage.java:193)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.distributed.internal.ReplyMessage.process(ReplyMessage.java:186)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:374)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:440)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.distributed.internal.DistributionManager.runUntilShutdown(DistributionManager.java:665)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in org.apache.geode.distributed.internal.DistributionManager$5$1.run(DistributionManager.java:961)
[vm3] 	at Remote Member '172.16.115.245(73551)<v3>:32772' in java.lang.Thread.run(Thread.java:748)
{noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message