4 Replies Latest reply: Mar 14, 2013 10:53 AM by Cdelahun-Oracle RSS

    Concurrency Manager sleeps/waits indefinitely

    newToplinkUser
      CreditNotifierThread-7" id=73 idx=0x134 tid=1115 prio=5 alive, sleeping, native_waiting
      at java/lang/Thread.sleep(J)V(Native Method)
      at org/eclipse/persistence/internal/helper/ConcurrencyManager.releaseDeferredLock(ConcurrencyManager.java:480)[optimized]
      at org/eclipse/persistence/internal/helper/ConcurrencyManager.checkDeferredLock(ConcurrencyManager.java:240)[inlined]
      at org/eclipse/persistence/internal/identitymaps/CacheKey.checkDeferredLock(CacheKey.java:195)[inlined]
      at org/eclipse/persistence/internal/identitymaps/IdentityMapManager.getFromIdentityMapWithDeferredLock(IdentityMapManager.java:895)[inlined]
      at org/eclipse/persistence/internal/sessions/IdentityMapAccessor.getFromIdentityMapWithDeferredLock(IdentityMapAccessor.java:515)[optimized]
      at org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.checkCacheForObject(ExpressionQueryMechanism.java:825)[optimized]
      at org/eclipse/persistence/queries/ReadObjectQuery.checkEarlyReturnLocal(ReadObjectQuery.java:241)[optimized]
      at org/eclipse/persistence/queries/ObjectLevelReadQuery.checkEarlyReturn(ObjectLevelReadQuery.java:768)[optimized]
      at org/eclipse/persistence/queries/DatabaseQuery.execute(DatabaseQuery.java:781)[optimized]
      at org/eclipse/persistence/queries/ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1040)[inlined]
      at org/eclipse/persistence/queries/ReadObjectQuery.execute(ReadObjectQuery.java:418)[optimized]
      at org/eclipse/persistence/internal/sessions/AbstractSession.internalExecuteQuery(AbstractSession.java:2831)[optimized]
      at org/eclipse/persistence/internal/sessions/AbstractSession.executeQuery(AbstractSession.java:1516)[inlined]
      at org/eclipse/persistence/internal/sessions/AbstractSession.executeQuery(AbstractSession.java:1498)[optimized]
      at org/eclipse/persistence/internal/indirection/QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:98)[inlined]
      at org/eclipse/persistence/internal/indirection/QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:88)[optimized]
      at org/eclipse/persistence/internal/indirection/DatabaseValueHolder.getValue(DatabaseValueHolder.java:88)[optimized]
      ^-- Holding lock: org/eclipse/persistence/internal/indirection/QueryBasedValueHolder@0x175d1a120[thin lock]
      at com/integral/finance/counterparty/CounterpartyC.getOrganization(CounterpartyC.java:124)[optimized]
      at com/integral/finance/counterparty/LegalEntityC.getTradingParty(LegalEntityC.java:281)[optimized]
      at com/integral/finance/counterparty/CounterpartyUtilC.isValidTradingParties(CounterpartyUtilC.java:458)[inlined]
      at com/integral/finance/creditLimit/CreditLimitSubscriptionManagerC.addCreditUtilizationsForAllLEs(CreditLimitSubscriptionManagerC.java:418)[inlined]
      at com/integral/finance/creditLimit/CreditUtilizationCacheFetchFromSubscriptionsC.fetchCreditUtilizations(CreditUtilizationCacheFetchFromSubscriptionsC.java:135)[inlined]
      at com/integral/finance/creditLimit/CreditUtilizationCacheFetchFromSubscriptionsC.run(CreditUtilizationCacheFetchFromSubscriptionsC.java:58)[optimized]
      at java/util/concurrent/ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[optimized]
      at java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java/lang/Thread.run(Thread.java:662)
      at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)

      and blocks other threads causing blocked chains
        • 1. Re: Concurrency Manager sleeps/waits indefinitely
          newToplinkUser
          Any ideas? this brought down our grid, how to recover from this endless thread sleep, is there some way of sending in a thread interrupt or
          some signal? The situation happens when we try to refresh our internal cache with the relevant value holder interfaces getting queries simultaneously,
          is there some thing we can check at code level to identify this issue?

          Thanks
          • 2. Re: Concurrency Manager sleeps/waits indefinitely
            Cdelahun-Oracle
            The thread is sleeping because it is waiting for an object to be built, presumably by another thread, and cannot return until the other thread completes. Interupting this thread, if possible, would result in a RuntimeException being thrown up the thread stack back to the application (an instance of EclipseLink's ConcurrencyException). But without identifying what actually has the lock, other threads might end up getting stuck again later on.

            What do the other threads look like, and how does the code that refreshes your internal cache operate? You also mention grid, does that mean you are using TopLink Grid? Finally, what version of EclipseLink are you on?

            At first glance, the issue might be related to https://bugs.eclipse.org/bugs/show_bug.cgi?id=399528 which is still open, but you might be better going through Oracle support for help as this issue might potentially require a patch and some debugging to resolve.

            Best Regards,
            Chris
            • 3. Re: Concurrency Manager sleeps/waits indefinitely
              newToplinkUser
              The other threads stack trace is below:

              "MultiAppRefDataThread-1" id=365 idx=0x5b0 tid=2055 prio=5 alive, sleeping, native_waiting
              at java/lang/Thread.sleep(J)V(Native Method)
              at org/eclipse/persistence/internal/helper/ConcurrencyManager.releaseDeferredLock(ConcurrencyManager.java:480)[optimized]
              at org/eclipse/persistence/internal/helper/ConcurrencyManager.checkDeferredLock(ConcurrencyManager.java:240)[inlined]
              at org/eclipse/persistence/internal/identitymaps/CacheKey.checkDeferredLock(CacheKey.java:195)[inlined]
              at org/eclipse/persistence/internal/identitymaps/IdentityMapManager.getFromIdentityMapWithDeferredLock(IdentityMapManager.java:895)[inlined]
              at org/eclipse/persistence/internal/sessions/IdentityMapAccessor.getFromIdentityMapWithDeferredLock(IdentityMapAccessor.java:515)[optimized]
              at org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.checkCacheForObject(ExpressionQueryMechanism.java:825)[optimized]
              at org/eclipse/persistence/queries/ReadObjectQuery.checkEarlyReturnLocal(ReadObjectQuery.java:241)[optimized]
              at org/eclipse/persistence/queries/ObjectLevelReadQuery.checkEarlyReturn(ObjectLevelReadQuery.java:768)[optimized]
              at org/eclipse/persistence/queries/DatabaseQuery.execute(DatabaseQuery.java:781)[optimized]
              at org/eclipse/persistence/queries/ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1040)[inlined]
              at org/eclipse/persistence/queries/ReadObjectQuery.execute(ReadObjectQuery.java:418)[optimized]
              at org/eclipse/persistence/internal/sessions/AbstractSession.internalExecuteQuery(AbstractSession.java:2831)[optimized]
              at org/eclipse/persistence/internal/sessions/AbstractSession.executeQuery(AbstractSession.java:1516)[inlined]
              at org/eclipse/persistence/internal/sessions/AbstractSession.executeQuery(AbstractSession.java:1498)[optimized]
              at org/eclipse/persistence/internal/indirection/QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:98)[inlined]
              at org/eclipse/persistence/internal/indirection/QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:88)[optimized]
              at org/eclipse/persistence/internal/indirection/DatabaseValueHolder.getValue(DatabaseValueHolder.java:88)[optimized]
              ^-- Holding lock: org/eclipse/persistence/internal/indirection/QueryBasedValueHolder@0x183dde2e0[thin lock]
              at com/integral/user/OrganizationRelationshipC.getRelatedOrganization(OrganizationRelationshipC.java:60)[optimized]
              at com/integral/user/OrganizationC.getOrganizationRelationships(OrganizationC.java:753)
              at com/integral/user/OrganizationC.getRelatedOrganizations(OrganizationC.java:794)
              at com/integral/is/common/util/QuoteConventionUtilC.getRelatedLPs(QuoteConventionUtilC.java:344)
              at com/integral/is/common/util/QuoteConventionUtilC.getFXRateConvention(QuoteConventionUtilC.java:107)
              at com/integral/is/common/util/QuoteConventionUtilC.refreshOrganizationConvention(QuoteConventionUtilC.java:231)
              at com/integral/is/functor/OrganizationModificationRemoteTransactionFunctor.handleOrganizationModification(OrganizationModificationRemoteTransactionFunctor.java:134)
              at com/integral/is/functor/OrganizationModificationRemoteTransactionFunctor.onCommit(OrganizationModificationRemoteTransactionFunctor.java:75)
              at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
              at jrockit/vm/Reflect.invokeMethod(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Native Method)
                  at sun/reflect/NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Native Method)
                  at sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                  at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[optimized]
              at java/lang/reflect/Method.invoke(Method.java:597)[inlined]
              at com/integral/persistence/PersistentEntityCacheSynchronizationC.executeFunctor(PersistentEntityCacheSynchronizationC.java:757)[inlined]
              at com/integral/persistence/PersistentEntityCacheSynchronizationC.processFunctors(PersistentEntityCacheSynchronizationC.java:733)[optimized]
              at com/integral/persistence/PersistentEntityCacheSynchronizationC.processMessage(PersistentEntityCacheSynchronizationC.java:169)[inlined]
              at com/integral/persistence/ejb/ReferenceDataEntityCacheSynchronizationC.access$100(ReferenceDataEntityCacheSynchronizationC.java:17)[inlined]
              at com/integral/persistence/ejb/ReferenceDataEntityCacheSynchronizationC$ReferenceDataUpdateHandlerWorker.run(ReferenceDataEntityCacheSynchronizationC.java:90)[optimized]
              at java/util/concurrent/ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[optimized]
              at java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
              at java/lang/Thread.run(Thread.java:662)
              at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
              -- end of trace


              Thread 2:

              "MultiAppRefDataThread-2" id=366 idx=0x5b4 tid=2056 prio=5 alive, sleeping, native_waiting
              at java/lang/Thread.sleep(J)V(Native Method)
              at org/eclipse/persistence/internal/helper/ConcurrencyManager.releaseDeferredLock(ConcurrencyManager.java:480)[optimized]
              at org/eclipse/persistence/internal/helper/ConcurrencyManager.checkDeferredLock(ConcurrencyManager.java:240)[inlined]
              at org/eclipse/persistence/internal/identitymaps/CacheKey.checkDeferredLock(CacheKey.java:195)[inlined]
              at org/eclipse/persistence/internal/identitymaps/IdentityMapManager.getFromIdentityMapWithDeferredLock(IdentityMapManager.java:895)[inlined]
              at org/eclipse/persistence/internal/sessions/IdentityMapAccessor.getFromIdentityMapWithDeferredLock(IdentityMapAccessor.java:515)[optimized]
              at org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.checkCacheForObject(ExpressionQueryMechanism.java:825)[optimized]
              at org/eclipse/persistence/queries/ReadObjectQuery.checkEarlyReturnLocal(ReadObjectQuery.java:241)[optimized]
              at org/eclipse/persistence/queries/ObjectLevelReadQuery.checkEarlyReturn(ObjectLevelReadQuery.java:768)[optimized]
              at org/eclipse/persistence/queries/DatabaseQuery.execute(DatabaseQuery.java:781)[optimized]
              at org/eclipse/persistence/queries/ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1040)[inlined]
              at org/eclipse/persistence/queries/ReadObjectQuery.execute(ReadObjectQuery.java:418)[optimized]
              at org/eclipse/persistence/internal/sessions/AbstractSession.internalExecuteQuery(AbstractSession.java:2831)[optimized]
              at org/eclipse/persistence/internal/sessions/AbstractSession.executeQuery(AbstractSession.java:1516)[inlined]
              at org/eclipse/persistence/internal/sessions/AbstractSession.executeQuery(AbstractSession.java:1498)[optimized]
              at org/eclipse/persistence/internal/indirection/QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:98)[inlined]
              at org/eclipse/persistence/internal/indirection/QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:88)[optimized]
              at org/eclipse/persistence/internal/indirection/DatabaseValueHolder.getValue(DatabaseValueHolder.java:88)[optimized]
              ^-- Holding lock: org/eclipse/persistence/internal/indirection/QueryBasedValueHolder@0x130c37ed0[biased lock]
              at com/integral/finance/counterparty/CounterpartyC.getOrganization(CounterpartyC.java:124)[optimized]
              at com/integral/finance/counterparty/LegalEntityC.getTradingParties(LegalEntityC.java:209)[optimized]
              at com/integral/finance/counterparty/LegalEntityC.getTradingParty(LegalEntityC.java:277)[optimized]
              at com/integral/finance/creditLimit/functor/CreditEnableNotificationFunctorC.onCommit(CreditEnableNotificationFunctorC.java:69)
              at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
              at jrockit/vm/Reflect.invokeMethod(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Native Method)
                  at sun/reflect/NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Native Method)
                  at sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                  at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[optimized]
              at java/lang/reflect/Method.invoke(Method.java:597)[inlined]
              at com/integral/persistence/PersistentEntityCacheSynchronizationC.executeFunctor(PersistentEntityCacheSynchronizationC.java:757)[inlined]
              at com/integral/persistence/PersistentEntityCacheSynchronizationC.processFunctors(PersistentEntityCacheSynchronizationC.java:733)[optimized]
              at com/integral/persistence/PersistentEntityCacheSynchronizationC.processMessage(PersistentEntityCacheSynchronizationC.java:169)[inlined]
              at com/integral/persistence/ejb/ReferenceDataEntityCacheSynchronizationC.access$100(ReferenceDataEntityCacheSynchronizationC.java:17)[inlined]
              at com/integral/persistence/ejb/ReferenceDataEntityCacheSynchronizationC$ReferenceDataUpdateHandlerWorker.run(ReferenceDataEntityCacheSynchronizationC.java:90)[optimized]
              at java/util/concurrent/ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[optimized]
              at java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
              at java/lang/Thread.run(Thread.java:662)
              at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
              -- end of trace

              Thread 3:

              "MultiAppRefDataThread-3" id=367 idx=0x5b8 tid=2057 prio=5 alive, sleeping, native_waiting
              at java/lang/Thread.sleep(J)V(Native Method)
              at org/eclipse/persistence/internal/helper/ConcurrencyManager.releaseDeferredLock(ConcurrencyManager.java:480)[optimized]
              at org/eclipse/persistence/internal/helper/ConcurrencyManager.checkDeferredLock(ConcurrencyManager.java:240)[inlined]
              at org/eclipse/persistence/internal/identitymaps/CacheKey.checkDeferredLock(CacheKey.java:195)[inlined]
              at org/eclipse/persistence/internal/identitymaps/IdentityMapManager.getFromIdentityMapWithDeferredLock(IdentityMapManager.java:895)[inlined]
              at org/eclipse/persistence/internal/sessions/IdentityMapAccessor.getFromIdentityMapWithDeferredLock(IdentityMapAccessor.java:515)[optimized]
              at org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.checkCacheForObject(ExpressionQueryMechanism.java:825)[optimized]
              at org/eclipse/persistence/queries/ReadObjectQuery.checkEarlyReturnLocal(ReadObjectQuery.java:241)[optimized]
              at org/eclipse/persistence/queries/ObjectLevelReadQuery.checkEarlyReturn(ObjectLevelReadQuery.java:768)[optimized]
              at org/eclipse/persistence/queries/DatabaseQuery.execute(DatabaseQuery.java:781)[optimized]
              at org/eclipse/persistence/queries/ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1040)[inlined]
              at org/eclipse/persistence/queries/ReadObjectQuery.execute(ReadObjectQuery.java:418)[optimized]
              at org/eclipse/persistence/internal/sessions/AbstractSession.internalExecuteQuery(AbstractSession.java:2831)[optimized]
              at org/eclipse/persistence/internal/sessions/AbstractSession.executeQuery(AbstractSession.java:1516)[inlined]
              at org/eclipse/persistence/internal/sessions/AbstractSession.executeQuery(AbstractSession.java:1498)[optimized]
              at org/eclipse/persistence/internal/indirection/QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:98)[inlined]
              at org/eclipse/persistence/internal/indirection/QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:88)[optimized]
              at org/eclipse/persistence/internal/indirection/DatabaseValueHolder.getValue(DatabaseValueHolder.java:88)[optimized]
              ^-- Holding lock: org/eclipse/persistence/internal/indirection/QueryBasedValueHolder@0x17ef6fd40[biased lock]
              at com/integral/user/UserC.getOrganization(UserC.java:466)[optimized]
              at com/integral/user/UserFactory._loadUser(UserFactory.java:928)[optimized]
              at com/integral/user/UserFactory.loadUser(UserFactory.java:921)[inlined]
              at com/integral/persistence/cache/ReferenceDataCacheC.loadReferenceDataEntity(ReferenceDataCacheC.java:300)[optimized]
              at com/integral/persistence/PersistentEntityCacheSynchronizationC.processModifications(PersistentEntityCacheSynchronizationC.java:495)[inlined]
              at com/integral/persistence/PersistentEntityCacheSynchronizationC.processMessage(PersistentEntityCacheSynchronizationC.java:155)[inlined]
              at com/integral/persistence/ejb/ReferenceDataEntityCacheSynchronizationC.access$100(ReferenceDataEntityCacheSynchronizationC.java:17)[inlined]
              at com/integral/persistence/ejb/ReferenceDataEntityCacheSynchronizationC$ReferenceDataUpdateHandlerWorker.run(ReferenceDataEntityCacheSynchronizationC.java:90)[optimized]
              at java/util/concurrent/ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[optimized]
              at java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
              at java/lang/Thread.run(Thread.java:662)
              at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
              -- end of trace


              Thread 4:

              "MultiAppRefDataThread-4" id=368 idx=0x5bc tid=2058 prio=5 alive, sleeping, native_waiting
              at java/lang/Thread.sleep(J)V(Native Method)
              at org/eclipse/persistence/internal/helper/ConcurrencyManager.releaseDeferredLock(ConcurrencyManager.java:480)[optimized]
              at org/eclipse/persistence/internal/helper/ConcurrencyManager.checkDeferredLock(ConcurrencyManager.java:240)[inlined]
              at org/eclipse/persistence/internal/identitymaps/CacheKey.checkDeferredLock(CacheKey.java:195)[inlined]
              at org/eclipse/persistence/internal/identitymaps/IdentityMapManager.getFromIdentityMapWithDeferredLock(IdentityMapManager.java:895)[inlined]
              at org/eclipse/persistence/internal/sessions/IdentityMapAccessor.getFromIdentityMapWithDeferredLock(IdentityMapAccessor.java:515)[optimized]
              at org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.checkCacheForObject(ExpressionQueryMechanism.java:825)[optimized]
              at org/eclipse/persistence/queries/ReadObjectQuery.checkEarlyReturnLocal(ReadObjectQuery.java:241)[optimized]
              at org/eclipse/persistence/queries/ObjectLevelReadQuery.checkEarlyReturn(ObjectLevelReadQuery.java:768)[optimized]
              at org/eclipse/persistence/queries/DatabaseQuery.execute(DatabaseQuery.java:781)[optimized]
              at org/eclipse/persistence/queries/ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1040)[inlined]
              at org/eclipse/persistence/queries/ReadObjectQuery.execute(ReadObjectQuery.java:418)[optimized]
              at org/eclipse/persistence/internal/sessions/AbstractSession.internalExecuteQuery(AbstractSession.java:2831)[optimized]
              at org/eclipse/persistence/internal/sessions/AbstractSession.executeQuery(AbstractSession.java:1516)[inlined]
              at org/eclipse/persistence/internal/sessions/AbstractSession.executeQuery(AbstractSession.java:1498)[optimized]
              at org/eclipse/persistence/internal/indirection/QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:98)[inlined]
              at org/eclipse/persistence/internal/indirection/QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:88)[optimized]
              at org/eclipse/persistence/internal/indirection/DatabaseValueHolder.getValue(DatabaseValueHolder.java:88)[optimized]
              ^-- Holding lock: org/eclipse/persistence/internal/indirection/QueryBasedValueHolder@0x17ef60140[biased lock]
              at com/integral/user/UserC.getOrganization(UserC.java:466)[optimized]
              at com/integral/user/UserFactory._loadUser(UserFactory.java:928)[optimized]
              at com/integral/user/UserFactory.loadUser(UserFactory.java:921)[inlined]
              at com/integral/persistence/cache/ReferenceDataCacheC.loadReferenceDataEntity(ReferenceDataCacheC.java:300)[optimized]
              at com/integral/persistence/PersistentEntityCacheSynchronizationC.processModifications(PersistentEntityCacheSynchronizationC.java:495)[inlined]
              at com/integral/persistence/PersistentEntityCacheSynchronizationC.processMessage(PersistentEntityCacheSynchronizationC.java:155)[inlined]
              at com/integral/persistence/ejb/ReferenceDataEntityCacheSynchronizationC.access$100(ReferenceDataEntityCacheSynchronizationC.java:17)[inlined]
              at com/integral/persistence/ejb/ReferenceDataEntityCacheSynchronizationC$ReferenceDataUpdateHandlerWorker.run(ReferenceDataEntityCacheSynchronizationC.java:90)[optimized]
              at java/util/concurrent/ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[optimized]
              at java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
              at java/lang/Thread.run(Thread.java:662)
              at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)


              The grid I am referring to is our own GRID.

              This may be what is happening.

              We have user who has Organization as a Value Holder Interface, when the user object becomes dirty
              in cache (our own internal cache), we try to refresh the user object including the value holder objects,
              we somehow land in a situation where the current threads holds a lock and waits for other threads to complete
              and there are other thread(s) waiting for this to complete, resulting in an endless recursive loop.

              Is there any way of identifying looping or breaking this recursive deferred locks check?

              The bug does not hold good for us as we are not using UOW in this case.

              Thanks a lot
              • 4. Re: Concurrency Manager sleeps/waits indefinitely
                Cdelahun-Oracle
                That might be true, but what is shown in the few stacks you've posted is not a deadlock, since all are waiting on something else to complete, but none of them hold locks the other threads are waiting on. So they are waiting on something not shown to complete. If these are the only threads in EclipseLink code, then you might need to call printIdentityMapLocks() on the IdentiyMapAccessor from the Session to dump all of the locks, and use this to find out what went wrong.

                See http://wiki.eclipse.org/EclipseLink/FAQ/JPA#How_to_diagnose_and_resolve_hangs_and_deadlocks.3F for what you might do to workaround the issue.

                Best Regards,
                Chris