Details
-
Bug
-
Resolution: Obsolete
-
Major
-
5.0.0.FINAL
-
None
Description
Infinispan hangs when starting a second instance of a named cache in replication mode on the same host.
Program scenario:
Http servlet is used to cache pages using Infinispan
Web app started twice by Maven on different ports:
- mvn tomcat:run -Dmaven.tomcat.port=9090
- mvn tomcat:run -Dmaven.tomcat.port=9091
Infinispan XML config:
<?xml version="1.0" encoding="UTF-8"?> <infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:5.0 http://www.infinispan.org/schemas/infinispan-config-5.0.xsd" xmlns="urn:infinispan:config:5.0"> <global> <transport/> </global> <default> <clustering mode="repl"> </clustering> </default> <namedCache name="itemCache"> </namedCache> <namedCache name="pageCache"> </namedCache> </infinispan>
Code extract:
@Service public class InfCachingService implements ICachingService, ResourceLoaderAware { private static final Logger logger = LoggerFactory.getLogger(InfCachingService.class); private String configName = null; protected Cache<Integer, ContentBase> itemCache; protected Cache<String, PageCacheItem> pageCache; @Value("${inf.config.file}") void setConfig(String configName) { this.configName = configName; } @Override public void setResourceLoader(ResourceLoader resourceLoader) { try { String configFile = resourceLoader.getResource( configName ).getFile().getCanonicalPath(); createCaches(configFile); } catch(Exception e) { logger.error("Could not get resource file: "+ configName + " : " + e); } } protected Boolean createCaches(String configFile) { System.out.println("Creating infinispan CacheManager from XML config"); try { DefaultCacheManager m = new DefaultCacheManager(configFile); if ( pageCache != null ) { throw new Exception("pageCache should not exists"); } pageCache = m.getCache("pageCache"); System.out.println("pageCache created"); return true; } catch(Exception e) { logger.error("Could not create Caches:", e); return false; } }
Log output on second jvm:
ISPN000088: Unable to use any JGroups configuration mechanisms provided in properties {}. Using default JGroups configuration! New view accepted: [z200-59673|1] [z200-59673, z200-39342] ISPN000094: Received new cluster view: [z200-59673|1] [z200-59673, z200-39342] ISPN000079: Cache local address is z200-39342, physical addresses are [fe80:0:0:0:250:56ff:fec0:8:60576] Waiting on view being accepted ISPN000128: Infinispan version: Infinispan 'Pagoa' 5.0.0.CR8 Interceptor chain size: 6 Interceptor chain is: >> org.infinispan.interceptors.InvocationContextInterceptor >> org.infinispan.interceptors.TxInterceptor >> org.infinispan.interceptors.NotificationInterceptor >> org.infinispan.interceptors.LockingInterceptor >> org.infinispan.interceptors.ReplicationInterceptor >> org.infinispan.interceptors.CallInterceptor Initiating state transfer process ISPN000074: Trying to fetch state from z200-59673 New view accepted: MergeView::[z200-39342|3] [z200-39342, z200-59673], subgroups=[[z200-59673|2] [z200-59673], [z200-59673|1] [z200-39342]] ISPN000093: Received new, MERGED cluster view: MergeView::[z200-39342|3] [z200-39342, z200-59673], subgroups=[[z200-59673|2] [z200-59673], [z200-59673|1] [z200-39342]]