[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