Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 11.0.0.CR1, 10.1.8.Final
    • Fix Version/s: 12.0.0.Dev01
    • Component/s: Core
    • Labels:
      None

      Description

      When an entry is updated, InternalEntryFactoryImpl tries to reuse the existing InternalCacheEntry instance instead of creating a new one. The condition is that both the new and the old entry have the same implementation implementation: immortal, immortal w/ external metadata, transient, transient w/ metadata etc.

      BecauseĀ MetadataImmortalCacheEntry extends ImmortalCacheEntry, that logic is broken: when an immortal entry with external metadata is replaced with a new entry without external metadata, the external metadata is not removed.

      This impacts the anchored keys module, which I am changing to store the key location in the metadata (currently it is stored as a value, and it is broken with BINARY/OFF_HEAP storage). When a node leaves and an entry located on the leaver is updated, the key is written on the newest joiner. The joiner already has a local entry with RemoteMetadata, and is trying to write a value without any metadata.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                dan.berindei Dan Berindei
                Reporter:
                dan.berindei Dan Berindei
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: