After Upgrading to 12.1.2.0.1 From 3.7.1 Errors of this Form, "An entry was inserted into the backing map for the partitioned cache "rwbm-event-cache" in partition 255 which is not owned by this member; the entry will be removed.", Started to be Reported (Doc ID 1636676.1)

Last updated on JULY 12, 2017

Applies to:

Oracle Coherence - Version 12.1.2.0.1 and later
Information in this document applies to any platform.

Symptoms

After upgrading from 3.7.1.10 to  12.1.2.0.1 in production customer is seeing the below error in the logs for one particular node out of 191 Storage nodes:

 

Changes

In Coherence version 3.7.1, ReadWriteBackingMap.getAll() iterates over the set of keys passed to CacheLoader.loadAll(), and puts the returned values for those keys into the ReadWriteBackingMap internal cache.  But in Coherence version 12.1, ReadWriteBackingMap.getAll() iterates over the set of all map entries returned by CacheLoader.loadAll(), and puts those map entries into the ReadWriteBackingMap's internal cache. Thus in 12.1.2, if CacheLoader.loadAll() returns more values than keys passed in, those additional values will be inserted (temporarily) into the ReadWriteBackingMap's internal cache, whereas in 3.7.1 they were ignored.

PartitionedCache$Storage.doBackingMapEvent() is called for each insertion into the ReadWriteBackingMap's internal cache.  If the key being inserted is not owned by the local storage member, the above message is logged, and the key is removed from the local map that is, from the ReadWriteBackingMap's internal cache.  This logic in PartitionedCache$Storage.doBackingMapEvent() has not changed from 3.7.1 to 12.1.2, but is now being exercised more in 12.1.2 due to additional values returned from CacheLoader.loadAll() not being ignored as they were in 3.7.1

Therefore there was a slight behavior change between 3.7.1 and 12.1.2, which causes log messages in 12.1.2 not seen 3.7.1 on insertion of unowned keys, but has no other net effect. Cache contents are the same between 3.7.1 and 12.1.2, after ReadWriteBackingMap.getAll() returns, since PartitionedCache$Storage.doBackingMapEvent() removes the unowned key from the local map.

 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms