[infinispan-issues] [JBoss JIRA] (ISPN-6857) OutdatedTopologyException in clustered invalidation cache because StateTransferInterceptor not in the chain
Marek Posolda (JIRA)
issues at jboss.org
Fri Jul 15 04:07:00 EDT 2016
Marek Posolda created ISPN-6857:
-----------------------------------
Summary: OutdatedTopologyException in clustered invalidation cache because StateTransferInterceptor not in the chain
Key: ISPN-6857
URL: https://issues.jboss.org/browse/ISPN-6857
Project: Infinispan
Issue Type: Bug
Affects Versions: 8.1.0.Final
Reporter: Marek Posolda
I have the following setup:
- 2 nodes in cluster with mode INVALIDATION_SYNC. No-transaction cache.
- Node1 is started
- Called "cache.remove" on some key on node1. At the same time, node2 is starting, which is causing topology change.
- The "cache.remove" call on node1 is throwing OutdatedTopologyException.
I found the cause is that StateTransferInterceptor is not added in InterceptorChain during INVALIDATION mode. It's just available during REPLICATION or DISTRIBUTED modes - https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/factories/InterceptorChainFactory.java#L158
Indeed when I manually added StateTransferInterceptor to my invalidation cache:
{code}
invalidationConfigBuilder.customInterceptors()
.addInterceptor()
.before(NonTransactionalLockingInterceptor.class)
.interceptorClass(StateTransferInterceptor.class);
{code}
I can see that issue is gone as OutdatedTopologyException is catched and command is retried with new topology.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the infinispan-issues
mailing list