…not ordered Make the LEAVE command synchronous. Since the cache start/shutdown is already synchronized, this will prevent the cache from restarting before the coordinator has removed it from the members list.
…iginator has crashed Remove StaleTransactionCleanupService and clean the stale transactions explicitly from StateConcumerImpl.onTopologyUpdate, after applying any transferred transactions. Since now it's more likely to have stale transactions on the provider, the provider also checks if the originator has left the cache before sending a transaction.
…Cache.replace(oldValue, newValue) to work Equals compares contentType and data array.
actually can be used as such
Check for a null RpcManager in AbstraceEncoder1x.getTopologyResponse.
…hen using eviction in a replicated cluster NBST uses transactional put commands to write the state and also forces local mode. Because local mode is forced TxInterceptor does not add the state transfer put command to the modification list of the transaction (no need to replicate the modification remotely). CacheStoreInterceptor relies on the modification list to later update the store when the transaction commits. Since the modification list is empty nothing is actually written to store causing this issue. The problem is not easily observable unless the cache uses eviction and the cache is transactional. For non-tx caches the modifications are written to store immediatelly and are not enqueued in a modification list until tx commit time so they are not affected by this bug. * Add short test to reproduce the scenario from MODE-1754 (works on 5.1.x and fails on 5.2) * Modify TxInterceptor to add all modfications to the transaction even if they are local only. * Modify AbstractCacheTransaction.getModifications() to filter out the local only modifications and to never return null (an empty collection is preferrable). * Add CacheTransaction/AbstractCacheTransaction.getAllModifications() to return all modifications including the local-only and use it in CacheStoreInterceptor instead of getModifications()/hasModifications(). * CacheStoreInterceptor.prepareCacheLoader checks every modification if they should be skiped before converting them with StoreModificationsBuilder. This is needed to ensure modifications with SKIP_CACHE_STORE do not get through. Previously this was an issue but it was never observed because SKIP_CACHE_STORE was usually used in conjunction with CACHE_MODE_LOCAL which meant the modification was already ignored.
from the cache managers list
* Remove membersAtStart, membersAtEnd collections from EventImpl. These can be derived from the CHes. * Re-implement getMembersAtStart/End to return the members from the corresponding CH if not null or return an empty collection otherwise. * Remove some unused methods from EventImpl.
…hAtEnd() StateConsumerImpl should record the CH at the time rebalance was started and the current CH when it ends and use these for broadcasting the DataRehashedEvent(pre==false). The old code was broadcasting currentCH (for oldCH) and null (for newCH).
…mand Fix typo in trace log.
Remove some duplicate @ManagedAttribute annotations for the same JMX attribute and change ResourceDMBean to fail when it finds such duplicates.
…try was not yet transfered during rehashing Fixes distributed case only. The replicated case still fails, so the test is still disabled. * Add more trace logging * Extend consistency tests to also cover putIfAbsent * TxDistributionInterceptor will do a remoteGetBeforeWrite() if the command is conditional
…"external" stores (i.e. declared in other schemas)
* Proove that config option StateTransferConfiguration.awaitInitialTransfer() is honored correctly. * Removed dead code. * Log exceptions encountered during command execution as errors
…pReduceTest.testCombinerDoesNotChangeResult test fails randomly
ISPN-2745 Add missing operations and parameter names/descriptions
Skip the topology update if the cache members aren't all in the address cache. Do the check in AbstractEncoder1x.generateTopologyResponse, so that it works for all topology types (i.e. also for replicated caches).
The lock collections are already synchronized so all we need to do is to add synchronization on them around the iteration.
…ete() returns too soon Don't flag the initial state transfer as complete as soon as we send the rebalance confirmation to the coordinator. It will be flagged while processing the next topology update.
…pReduceTest.testInvokeMapperCancellation test fails randomly