Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-6886

Region Sync should not be invoked when lost member is an empty accessor of persistent replicate region

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.10.0
    • 1.10.0
    • regions
    • None

    Description

      The following ClassCastException would be thrown:

      [warn 2019/06/17 13:51:57.025 PDT <Timer-2> tid=0x39] Timer task <org.apache.geode.internal.cache.DistributedRegion$1@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.

      Attachments

        Issue Links

          Activity

            People

              eshu Eric Shu
              eshu Eric Shu
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m