Hi,
I'm running into a strange deadlock situation when starting Hazelcast 3.0 with persistent maps.
What I do is:
1. I start my application on 4 nodes at the same time.
2. To make sure Hazelcast knows all its cluster members, I use the property hazelcast.initial.min.cluster.size. This works fine.
3. Now, I have to ensure that all persistent maps are fully loaded. I do this by polling map.size() on all persistent maps on all nodes until the map sizes do not change anymore. (this might not be the perfect way to do this, if you know a better way, please let me know:-)
This worked fine with Hazelcast 2.6.1, however now with Hazelcast 3.0 the nodes get blocked while loading the map entries.
After some waiting, I get exceptions like the following:
2013-08-08 10:45:44,030 WARN [hz.appway.response] com.hazelcast.spi.Invocation - [blade1]:5713 [blade] Retrying invocation: InvocationImpl{ serviceName='hz:impl:mapService', op=com.hazelcast.map.operation.MapSizeOperation@29121a52, partitionId=0, replicaIndex=0, tryCount=250, tryPauseMillis=500, invokeCount=100, callTimeout=60000, target=Address[blade2]:5713}, Reason: com.hazelcast.spi.exception.RetryableHazelcastException: Map is not ready.
I don't really know the problem, but one possible candidate might be that it has something to do with a node calling map.size() on a map that is in the process of being initialized...
Can you have a look into this?
Thanks and best,
Lukas