5.0.0.CR8 hangs in replication mode with 2 local nodes
sehughes Jul 28, 2011 10:46 AMHi everyone,
I've just started looking at Infinispan and have run into a problem when trying out replication mode in version 5.0.0.CR8.
- distribution mode works in this version with the same test program
- replication mode works in 4.2.1.FINAL with the same test program
If anyone can think whay may be causing this, it would be good to hear from you.
Regards, Stuart
Environment:
- Ubuntu 10.10 i686 (32bit)
- Apache tomcat 6.0.28
- java version "1.6.0_26" (Sun)
- Maven 2.2.1
Program scenario:
- Http servlet is used to cache pages using Infinispan
- Web app started by Maven on different ports (mvn tomcat:run -Dmaven.tomcat.port=909x)
Repeat steps:
- Start a java webapp on host A which creates a cache manager and cache
- Store and retrieve values from the cache (works fine)
- Start a second webapp on host A (same code, but the web-app started on a new port)
- You see messages on both indication "Received new, MERGED cluster view", however:
- The call in the second jvm to cm.getCache("pageCache"); never returns
- Both jvm's no longer respond (they appear hung)
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>
</infinispan>
Code:
@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;
}
}
...... SNIP .....
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]]