0 Replies Latest reply on Sep 10, 2009 3:31 AM by ravendra kumar

    org.jboss.cache.lock.UpgradeException: upgrade lock for /lpr

    ravendra kumar Newbie

      Hi All, I am using Jboss cache 'Implementation-Version: 1.4.1.SP9'
      I needed simple functionality to store and retrive objects into cache because of memory constraints.

      my design is, two threads putting objects on a node concurrently after putting few thousands objects it throws org.jboss.cache.lock.UpgradeException exception

      08:48:27,987 ERROR [LocalCache] cache put error. Key: [187885DataLoaderThread-27]. Cache: [/lpr/DataLoaderThread-27]
      org.jboss.cache.lock.UpgradeException: failure upgrading lock: fqn=/lpr, caller=Thread[DataLoaderThread-27,5,jboss], lock=read owners=[Thread[DataLoad
      erThread-28,5,jboss]] (activeReaders=1, activeWriter=null, waitingReaders=0, waitingWriters=0, waitingUpgrader=0)
       at org.jboss.cache.Node.acquire(Node.java:517)
       at org.jboss.cache.interceptors.PessimisticLockInterceptor.acquireNodeLock(PessimisticLockInterceptor.java:410)
       at org.jboss.cache.interceptors.PessimisticLockInterceptor.lock(PessimisticLockInterceptor.java:322)
       at org.jboss.cache.interceptors.PessimisticLockInterceptor.invoke(PessimisticLockInterceptor.java:189)
       at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
       at org.jboss.cache.interceptors.UnlockInterceptor.invoke(UnlockInterceptor.java:32)
       at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
       at org.jboss.cache.interceptors.TxInterceptor.handleNonTxMethod(TxInterceptor.java:379)
       at org.jboss.cache.interceptors.TxInterceptor.invoke(TxInterceptor.java:174)
       at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
       at org.jboss.cache.interceptors.CacheMgmtInterceptor.invoke(CacheMgmtInterceptor.java:157)
       at org.jboss.cache.TreeCache.invokeMethod(TreeCache.java:5919)
       at org.jboss.cache.TreeCache.put(TreeCache.java:3858)
       at org.jboss.cache.TreeCache.put(TreeCache.java:3799)
       at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
       at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
       at $Proxy185.put(Unknown Source)
       at com.logica.heca.lpr.cache.LocalCache.put(LocalCache.java:99)
       at com.logica.heca.lpr.cache.ContactVOCache.put(ContactVOCache.java:45)
       at com.logica.heca.lpr.dataLoader.DataLoaderThread.run(DataLoaderThread.java:169)
      Caused by: org.jboss.cache.lock.UpgradeException: upgrade lock for /lpr could not be acquired after 50000 ms. Lock map ownership Read lock owners: [Th
      read[DataLoaderThread-28,5,jboss]]
      Write lock owner: null
       (caller=Thread[DataLoaderThread-27,5,jboss], lock info: read owners=[] (activeReaders=1, activeWriter=null, waitingReaders=0, waitingWriters=0, waiti
      ngUpgrader=0))
       at org.jboss.cache.lock.IdentityLock.acquireWriteLock(IdentityLock.java:187)
       at org.jboss.cache.Node.acquireWriteLock(Node.java:562)
       at org.jboss.cache.Node.acquire(Node.java:509)
       ... 26 more
      08:48:27,987 ERROR [DataLoaderThread] What happend? ... we got an unexpected Exception in the worker thread [DataLoaderThread-27]. The thread termina
      tes
      com.logica.heca.lpr.common.exception.FatalException: Could not store object
       at com.logica.heca.lpr.cache.LocalCache.put(LocalCache.java:102)
       at com.logica.heca.lpr.cache.ContactVOCache.put(ContactVOCache.java:45)
       at com.logica.heca.lpr.dataLoader.DataLoaderThread.run(DataLoaderThread.java:169)
      Caused by: org.jboss.cache.lock.UpgradeException: failure upgrading lock: fqn=/lpr, caller=Thread[DataLoaderThread-27,5,jboss], lock=read owners=[Thre
      ad[DataLoaderThread-28,5,jboss]] (activeReaders=1, activeWriter=null, waitingReaders=0, waitingWriters=0, waitingUpgrader=0)
       at org.jboss.cache.Node.acquire(Node.java:517)
       at org.jboss.cache.interceptors.PessimisticLockInterceptor.acquireNodeLock(PessimisticLockInterceptor.java:410)
       at org.jboss.cache.interceptors.PessimisticLockInterceptor.lock(PessimisticLockInterceptor.java:322)
       at org.jboss.cache.interceptors.PessimisticLockInterceptor.invoke(PessimisticLockInterceptor.java:189)
       at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
       at org.jboss.cache.interceptors.UnlockInterceptor.invoke(UnlockInterceptor.java:32)
       at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
       at org.jboss.cache.interceptors.TxInterceptor.handleNonTxMethod(TxInterceptor.java:379)
       at org.jboss.cache.interceptors.TxInterceptor.invoke(TxInterceptor.java:174)
       at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
       at org.jboss.cache.interceptors.CacheMgmtInterceptor.invoke(CacheMgmtInterceptor.java:157)
       at org.jboss.cache.TreeCache.invokeMethod(TreeCache.java:5919)
       at org.jboss.cache.TreeCache.put(TreeCache.java:3858)
       at org.jboss.cache.TreeCache.put(TreeCache.java:3799)
       at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
       at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
       at $Proxy185.put(Unknown Source)
       at com.logica.heca.lpr.cache.LocalCache.put(LocalCache.java:99)
       ... 2 more
      Caused by: org.jboss.cache.lock.UpgradeException: upgrade lock for /lpr could not be acquired after 50000 ms. Lock map ownership Read lock owners: [Th
      read[DataLoaderThread-28,5,jboss]]
      Write lock owner: null
       (caller=Thread[DataLoaderThread-27,5,jboss], lock info: read owners=[] (activeReaders=1, activeWriter=null, waitingReaders=0, waitingWriters=0, waiti
      ngUpgrader=0))
       at org.jboss.cache.lock.IdentityLock.acquireWriteLock(IdentityLock.java:187)
       at org.jboss.cache.Node.acquireWriteLock(Node.java:562)
       at org.jboss.cache.Node.acquire(Node.java:509)
       ... 26 more
      
      


      cache config file :


      <mbean code="org.jboss.cache.TreeCache" name="logica_lpr:service=LocalCache">
       <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
       <attribute name="LockParentForChildInsertRemove">true</attribute>
       <attribute name="LockAcquisitionTimeout">50000</attribute>
      
      
       <attribute name="CacheMode">LOCAL</attribute>
       <attribute name="EvictionPolicyClass">org.jboss.cache.eviction.ElementSizePolicy</attribute>
       <!-- Specific eviction policy configurations. This is LRU -->
       <attribute name="EvictionPolicyConfig">
       <config>
       <attribute name="wakeUpIntervalSeconds">1</attribute>
       <!-- Cache wide default -->
       <region name="/_default_">
       <attribute name="maxNodes">2</attribute>
       <attribute name="maxElementsPerNode">15000</attribute>
       </region>
      
       </config>
       </attribute>
       </mbean>


      any help from anybody would be highly appreciable