Dan Berindei created ISPN-11981:
-----------------------------------
Summary: Stale immortal entry metadata
Key: ISPN-11981
URL:
https://issues.redhat.com/browse/ISPN-11981
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 10.1.8.Final, 11.0.0.CR1
Reporter: Dan Berindei
Assignee: Dan Berindei
Fix For: 11.0.0.Final
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.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)