[jboss-user] [JBossCache] - Endless loop in JBoss Cache 1.4.1.GA
msteiner
do-not-reply at jboss.com
Tue Feb 6 10:13:46 EST 2007
My application works perfect with 1.4.0.SP1 but not with 1.4.1.GA. I have got node " / a / b"
Everything works fine then I remove (TreeCacheMBean.remove(Fqn root);) then I once again put " / a / b" (TreeCacheMBean.put(Fqn fqn, String key, Object object);) and here problem starts. I have debugged a litle and found problematic place: org.jboss.cache.interceptors.PessimisticLockInterceptor line 170
| (...)
| if (createIfNotExists)
| {
| do
| {
| lock(fqn, ctx.getGlobalTransaction(), lock_type, recursive, zeroLockTimeout ? 0 : lock_timeout, createIfNotExists, storeLockedNode);
| }
| while(!cache.exists(fqn)); // keep trying until we have the lock (fixes concurrent remove())
| // terminates successfully, or with (Timeout)Exception
| }
|
| (...)
|
cache.exists(fqn) always returns false beause node "a" in fqn " / a / b" has been marked for removal (data={__JBOSS_MARKED_FOR_REMOVAL=null})
and org.jboss.cache.Node.getOrCreateChild(..) (line 322) does nothing with this node because it only creates new node if children().get(child_name)==null but this node is not null ! it exists and has __JBOSS_MARKED_FOR_REMOVAL flag.
Why node 'a' is not removed but only marked __JBOSS_MARKED_FOR_REMOVAL?
It is connected with JBCACHE-871 ?
My TransactionManager configuration:
<attribute name="TransactionManagerLookupClass">
| org.jboss.cache.JBossTransactionManagerLookup
| </attribute>
|
| <attribute name="IsolationLevel">NONE</attribute>
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4011955#4011955
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4011955
More information about the jboss-user
mailing list