You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Dick Cavender (Jira)" <ji...@apache.org> on 2019/09/26 18:04:09 UTC

[jira] [Closed] (GEODE-6886) Region Sync should not be invoked when lost member is an empty accessor of persistent replicate region

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

Dick Cavender closed GEODE-6886.
--------------------------------

> Region Sync should not be invoked when lost member is an empty accessor of persistent replicate region
> ------------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-6886
>                 URL: https://issues.apache.org/jira/browse/GEODE-6886
>             Project: Geode
>          Issue Type: Bug
>          Components: regions
>    Affects Versions: 1.10.0
>            Reporter: Eric Shu
>            Assignee: Eric Shu
>            Priority: Major
>             Fix For: 1.10.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> The following ClassCastException would be thrown:
> [warn 2019/06/17 13:51:57.025 PDT <Timer-2> tid=0x39] Timer task <or...@2cac9f7e> encountered exception
> org.apache.geode.ToDataException: class org.apache.geode.internal.cache.versions.DiskRegionVersionVector
>         at org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2331)
>         at org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1492)
>         at org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2067)
>         at org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2943)
>         at org.apache.geode.internal.cache.InitialImageOperation$RequestImageMessage.toData(InitialImageOperation.java:2138)
>         at org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2300)
>         at org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1492)
>         at org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:242)
>         at org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:385)
>         at org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:241)
>         at org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:596)
>         at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1711)
>         at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1892)
>         at org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2852)
>         at org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:2779)
>         at org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2816)
>         at org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1526)
>         at org.apache.geode.internal.cache.InitialImageOperation.synchronizeWith(InitialImageOperation.java:649)
>         at org.apache.geode.internal.cache.DistributedRegion.synchronizeWith(DistributedRegion.java:1338)
>         at org.apache.geode.internal.cache.DistributedRegion.synchronizeForLostMember(DistributedRegion.java:1327)
>         at org.apache.geode.internal.cache.DistributedRegion.performSynchronizeForLostMemberTask(DistributedRegion.java:1309)
>         at org.apache.geode.internal.cache.DistributedRegion$1.run2(DistributedRegion.java:1283)
>         at org.apache.geode.internal.SystemTimer$SystemTimerTask.run(SystemTimer.java:445)
>         at java.util.TimerThread.mainLoop(Timer.java:555)
>         at java.util.TimerThread.run(Timer.java:505)
> Caused by: java.lang.ClassCastException: org.apache.geode.distributed.internal.membership.InternalDistributedMember cannot be cast to org.apache.geode.internal.cache.persistence.DiskStoreID
>         at org.apache.geode.internal.cache.versions.DiskRegionVersionVector.writeMember(DiskRegionVersionVector.java:30)
>         at org.apache.geode.internal.cache.versions.RegionVersionVector.toData(RegionVersionVector.java:1205)
>         at org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2300)
>         ... 24 more
> The reason there is no need to sync with empty accessor is that it forwards the writes to actual region hosts, and only a host could generate a region version.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)