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] [Resolved] (GEODE-3172) Clients miss events when servers are upgraded from 1.0 to 1.2 due to serialization issues with HAEventWrapper
Date Mon, 10 Jul 2017 23:34:00 GMT

     [ https://issues.apache.org/jira/browse/GEODE-3172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Dan Smith resolved GEODE-3172.
------------------------------
    Resolution: Fixed

> Clients miss events when servers are upgraded from 1.0 to 1.2 due to serialization issues
with HAEventWrapper
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-3172
>                 URL: https://issues.apache.org/jira/browse/GEODE-3172
>             Project: Geode
>          Issue Type: Bug
>          Components: client queues, membership
>            Reporter: Dan Smith
>            Assignee: Dan Smith
>             Fix For: 1.2.0
>
>
> We're seeing another data loss issue when upgrading servers due to GEODE-2137. The issue
is that we store HAEventWrapper objects in a region for server->client queues. These objects
contain a member ID. Because the objects are region values, they can be lazily deserialized
using the version of the current member, which may not match the version of the member they
were serialized with.
> What we are seeing is that when a client is creating a queue on a 9.1 server, and it
is copying the contents of the queue from a 9.0 server, we get are getting serialization errors
which prevent the queue from being created. When the 9.0 server is killed as part of a rolling
upgrade, this results in event loss.
> {noformat}
> [severe 2017/07/06 15:09:52.195 PDT <Handshaker 0.0.0.0/0.0.0.0:23779 Thread 6>
tid=0xc0] Uncaught exception in thread Thread[Handshaker 0.0.0.0/0.0.0.0:23779 Thread 6,5,Handshaker
0.0.0.0/0.0.0.0:23779]
> org.apache.geode.InternalGemFireError: unexpected typeCode: -126
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.InternalDataSerializer.decodePrimitiveClass(InternalDataSerializer.java:1880)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.DataSerializer.readClass(DataSerializer.java:264)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.InternalDataSerializer.basicReadObject(InternalDataSerializer.java:2707)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.DataSerializer.readObject(DataSerializer.java:2961)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.cache.tier.sockets.HAEventWrapper.fromData(HAEventWrapper.java:330)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.InternalDataSerializer.invokeFromData(InternalDataSerializer.java:2370)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.DSFIDFactory.create(DSFIDFactory.java:981)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.InternalDataSerializer.basicReadObject(InternalDataSerializer.java:2691)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.DataSerializer.readObject(DataSerializer.java:2961)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.util.BlobHelper.deserializeBlob(BlobHelper.java:99)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.cache.EntryEventImpl.deserialize(EntryEventImpl.java:1911)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.cache.EntryEventImpl.deserialize(EntryEventImpl.java:1904)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.cache.VMCachedDeserializable.getDeserializedValue(VMCachedDeserializable.java:134)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.cache.AbstractRegionMap.initialImagePut(AbstractRegionMap.java:771)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.cache.InitialImageOperation.processChunk(InitialImageOperation.java:928)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.cache.InitialImageOperation$ImageProcessor.process(InitialImageOperation.java:1249)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.distributed.internal.ReplyMessage.process(ReplyMessage.java:213)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.internal.cache.InitialImageOperation$ImageReplyMessage.process(InitialImageOperation.java:2723)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.distributed.internal.ReplyMessage.dmProcess(ReplyMessage.java:193)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.distributed.internal.ReplyMessage.process(ReplyMessage.java:186)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:374)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:440)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.distributed.internal.DistributionManager.runUntilShutdown(DistributionManager.java:665)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in org.apache.geode.distributed.internal.DistributionManager$5$1.run(DistributionManager.java:961)
> 	at Remote Member '172.1.1.1(32406)<v4>:32771' in java.lang.Thread.run(Thread.java:748)
> 	at org.apache.geode.distributed.internal.ReplyException.handleAsUnexpected(ReplyException.java:89)
> 	at org.apache.geode.internal.cache.InitialImageOperation.getFromOne(InitialImageOperation.java:501)
> 	at org.apache.geode.internal.cache.DistributedRegion.getInitialImageAndRecovery(DistributedRegion.java:1182)
> 	at org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1022)
> 	at org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:337)
> 	at org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3077)
> 	at org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:257)
> 	at org.apache.geode.internal.cache.ha.HARegionQueue.createHARegion(HARegionQueue.java:367)
> 	at org.apache.geode.internal.cache.ha.HARegionQueue.<init>(HARegionQueue.java:347)
> 	at org.apache.geode.internal.cache.ha.HARegionQueue$BlockingHARegionQueue.<init>(HARegionQueue.java:2100)
> 	at org.apache.geode.internal.cache.ha.HARegionQueue$DurableHARegionQueue.<init>(HARegionQueue.java:2331)
> 	at org.apache.geode.internal.cache.ha.HARegionQueue.getHARegionQueueInstance(HARegionQueue.java:1953)
> 	at org.apache.geode.internal.cache.tier.sockets.CacheClientProxy$MessageDispatcher.<init>(CacheClientProxy.java:2321)
> 	at org.apache.geode.internal.cache.tier.sockets.CacheClientProxy.initializeMessageDispatcher(CacheClientProxy.java:1730)
> 	at org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier.initializeProxy(CacheClientNotifier.java:610)
> 	at org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier.registerClient(CacheClientNotifier.java:537)
> 	at org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier.registerGFEClient(CacheClientNotifier.java:330)
> 	at org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier.registerClient(CacheClientNotifier.java:277)
> 	at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.handleNewClientConnection(AcceptorImpl.java:1457)
> 	at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$5.run(AcceptorImpl.java:1332)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:748)
> {noformat}
> {noformat}



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

Mime
View raw message