You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Dan Smith (Jira)" <ji...@apache.org> on 2020/01/08 19:53:00 UTC
[jira] [Assigned] (GEODE-7661) NullPointerException when
serializing an EventID to a geode 1.0.0 member
[ https://issues.apache.org/jira/browse/GEODE-7661?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dan Smith reassigned GEODE-7661:
--------------------------------
Assignee: Dan Smith
> NullPointerException when serializing an EventID to a geode 1.0.0 member
> ------------------------------------------------------------------------
>
> Key: GEODE-7661
> URL: https://issues.apache.org/jira/browse/GEODE-7661
> Project: Geode
> Issue Type: Improvement
> Components: membership
> Reporter: Dan Smith
> Assignee: Dan Smith
> Priority: Major
>
> When serializing an EventID to a geode 1.0.0 member, there is special logic to translate the EventId.membershipID bytes to a different format.
> However, it's possible to construct an EventID with null bytes. This gets used as part of GII for server to client queues in HAEventWrapper.toData, as seen in this code and stack trace:
> {code}
> context.getSerializer().writeObject(new EventID(), out);
> {code}
> {noformat}
> [warning 2020/01/02 22:03:29.029 PST bridgegemfire5_host1_32096 <Handshaker 0.0.0.0/0.0.0.0:24446 Thread 6> tid=0x1b8] Initialization failed for Region /_gfe_non_durable_client_with_id_rs-FullRegression03050259a4i32xlarge-hydra-client-19(edgegemfire3_host1_32498:32498:loner):40074:57d9f969:edgegemfire3_host1_32498(version:GFE 8.1)_1_queue
> java.lang.NullPointerException
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.serialization.ByteArrayDataInput.initialize(ByteArrayDataInput.java:62)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.serialization.ByteArrayDataInput.<init>(ByteArrayDataInput.java:50)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.cache.EventID.getDistributedMember(EventID.java:319)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.cache.EventID.toData(EventID.java:360)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.serialization.DSFIDSerializerImpl.invokeToData(DSFIDSerializerImpl.java:199)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.serialization.DSFIDSerializerImpl.write(DSFIDSerializerImpl.java:123)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2007)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2839)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.InternalDataSerializer$2.writeObject(InternalDataSerializer.java:293)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.cache.tier.sockets.HAEventWrapper.toData(HAEventWrapper.java:287)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.serialization.DSFIDSerializerImpl.invokeToData(DSFIDSerializerImpl.java:199)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.serialization.DSFIDSerializerImpl.write(DSFIDSerializerImpl.java:123)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2007)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2839)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.util.BlobHelper.serializeTo(BlobHelper.java:66)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.cache.entries.AbstractRegionEntry.fillInValue(AbstractRegionEntry.java:391)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.cache.InitialImageOperation$RequestImageMessage.chunkEntries(InitialImageOperation.java:2051)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.internal.cache.InitialImageOperation$RequestImageMessage.process(InitialImageOperation.java:1774)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:394)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:458)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.distributed.internal.ClusterOperationExecutors.runUntilShutdown(ClusterOperationExecutors.java:449)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.distributed.internal.ClusterOperationExecutors.doHighPriorityThread(ClusterOperationExecutors.java:404)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in org.apache.geode.logging.internal.executors.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:119)
> at Remote Member 'rs-FullRegression03050259a4i32xlarge-hydra-client-19(bridgegemfire6_host1_7584:7584)<ec><v28>:41002(version:UNKNOWN[ordinal=115])' in java.lang.Thread.run(Thread.java:834)
> at org.apache.geode.distributed.internal.ReplyException.handleAsUnexpected(ReplyException.java:85)
> at org.apache.geode.internal.cache.InitialImageOperation.getFromOne(InitialImageOperation.java:499)
> at org.apache.geode.internal.cache.DistributedRegion.getInitialImageAndRecovery(DistributedRegion.java:1307)
> at org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1101)
> at org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:345)
> at org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3304)
> at org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:265)
> at org.apache.geode.internal.cache.ha.HARegionQueue.createHARegion(HARegionQueue.java:348)
> at org.apache.geode.internal.cache.ha.HARegionQueue.<init>(HARegionQueue.java:328)
> at org.apache.geode.internal.cache.ha.HARegionQueue$BlockingHARegionQueue.<init>(HARegionQueue.java:2199)
> at org.apache.geode.internal.cache.ha.HARegionQueue$DurableHARegionQueue.<init>(HARegionQueue.java:2450)
> at org.apache.geode.internal.cache.ha.HARegionQueue.getHARegionQueueInstance(HARegionQueue.java:2030)
> at org.apache.geode.internal.cache.tier.sockets.CacheClientProxy$MessageDispatcher.<init>(CacheClientProxy.java:2315)
> at org.apache.geode.internal.cache.tier.sockets.CacheClientProxy.initializeMessageDispatcher(CacheClientProxy.java:1728)
> at org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier.initializeProxy(CacheClientNotifier.java:660)
> at org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier.registerClient(CacheClientNotifier.java:587)
> at org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier.registerGFEClient(CacheClientNotifier.java:379)
> at org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier.registerClient(CacheClientNotifier.java:324)
> at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.handleNewClientConnection(AcceptorImpl.java:1517)
> at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$5.run(AcceptorImpl.java:1299)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java./base/java.lang.Thread.run(Thread.java:834)
> {noformat}
> We should check for null in this case and just send the null bytes as is to the remote member.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)