[jbosscache-dev] ClusteredCacheLoader deadlocks and JBCCACHE-1103

Jason T. Greene jason.greene at redhat.com
Fri Jun 15 08:00:40 EDT 2007


On Fri, 2007-06-15 at 09:09 +0200, Bela Ban wrote:
> I looked at 1103 in a bit more detail and concluded that the change in 
> JGroups (http://jira.jboss.com/jira/browse/JGRP-533) would not help. The 
> underlying issue is that (a) 2.4.1 has a single incoming request queue 
> and (b) the ClusteredCacheLoader holds a lock while making a 
> cluster-wide call. Let's look at an example:
> 
>    1. The CCL acquires a lock on Fqn-A and makes a cluster-wide call
>    2. We get a replication message for A (RM-A), so someone made an
>       update to A and is now trying to commit the change. RM-A tries to
>       acquire the lock on A, but is blocked because the CCL holds it.
>    3. Now a result for the CCL call arrives. It is not processed (single
>       queue) until RM-A gets processed. However, that's not the case
>       until the CCL call completes. In this case, the only way for the
>       CCL call to complete is via a timeout, as it will never get its
>       results.

That should be ok though because the CCL will still timeout on that
lock. The original problem was that the same thread with the CCL lock
was blocking on an FC lock so that the CCL lock would never be released
(since the FC lock was higher in the stack).

-Jason


-- 
Jason T. Greene
Lead, POJO Cache
JBoss, a division of Red Hat




More information about the jbosscache-dev mailing list