• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Confusing lock error solved, but now a restoreSessionWithID lock issue
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Confusing lock error solved, but now a restoreSessionWithID lock issue


  • Subject: Re: Confusing lock error solved, but now a restoreSessionWithID lock issue
  • From: Saad Laassel <email@hidden>
  • Date: Fri, 7 Nov 2008 18:07:24 -0500

On Oct 9, 2008, at 10:36 AM, Mike Schrag wrote:
One reason why this can happen is an access to an autolocking, coalescing ERXEC that is in that case the session().defaultEditingContext() outside the request-response loop. That means the unlocking code is not called (depends on the request response loop).

I thought Mike did something to prevent that from happening, but I'm not totally sure.
I didn't do anything on this one, though I've considered tracking the creation Thread reference in ERXEC and throwing an exception if it's used in any other Thread .... It's a bit draconian, though.

ms

We are seeing the same type of error:

Is it possible that a call to ERXEC.newEditingContext(); and a call to the session's defaultEditingContext return the same exact editing Context?

this is the error we are seeing:

228054 [WorkerThread5] WARN er.extensions.eof.ERXEC  - 15484314 Attempting to lock editing context from WorkerThread5 that was previously locked in Thread-8
 Current stack trace: java.lang.Exception: Locked
at er.extensions.eof.ERXEC.lock(ERXEC.java:448)
at com.webobjects.appserver.WOSession._awakeInContext(WOSession.java:835)
at com.webobjects.appserver.WOApplication.restoreSessionWithID(WOApplication.java:1917)
at er.extensions.appserver.ERXApplication.restoreSessionWithID(ERXApplication.java:1948)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:324)
at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:369)
at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:445)
at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:1657)
at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:1621)
at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:144)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:226)
at java.lang.Thread.run(Thread.java:613)

 Lock count: 1
 Existing lock: java.lang.Exception: Locked
at er.extensions.eof.ERXEC.lock(ERXEC.java:448)
at com.webobjects.eocontrol.EOEditingContext.tryLock(EOEditingContext.java:4632)
at com.webobjects.eocontrol.EOEditingContext._sendOrEnqueueNotification(EOEditingContext.java:4705)
at com.webobjects.eocontrol.EOEditingContext._globalIDChanged(EOEditingContext.java:2038)
at sun.reflect.GeneratedMethodAccessor172.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:122)
at com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:588)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:532)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:562)
at com.webobjects.eocontrol.EOObjectStoreCoordinator._globalIDsChangedInSubStore(EOObjectStoreCoordinator.java:698)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:122)
at com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:588)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:532)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:562)
at com.webobjects.eoaccess.EODatabaseContext.commitChanges(EODatabaseContext.java:6377)
at com.webobjects.eocontrol.EOObjectStoreCoordinator.saveChangesInEditingContext(EOObjectStoreCoordinator.java:386)
at com.webobjects.eocontrol.EOEditingContext.saveChanges(EOEditingContext.java:3192)
at er.extensions.eof.ERXEC._saveChanges(ERXEC.java:981)
at er.extensions.eof.ERXEC.saveChanges(ERXEC.java:903)
at com.devtest.services.tasks.ContentChangeTaskWrapper.createAndSaveChanges(ContentChangeTaskWrapper.java:70)
at com.devtest.services.tasks.TaskFactory.generateTaskForType(TaskFactory.java:42)
at com.devtest.services.tasks.TaskNotificationCenter.handleNotification(TaskNotificationCenter.java:70)
at com.devtest.services.tasks.TaskNotificationCenter.run(TaskNotificationCenter.java:79)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Thread.java:613)
 Created: java.lang.Exception: Creation
at er.extensions.eof.ERXEC.<init>(ERXEC.java:353)
at er.extensions.eof.ERXEC$DefaultFactory._createEditingContext(ERXEC.java:1492)
at er.extensions.eof.ERXEC$DefaultFactory._newEditingContext(ERXEC.java:1455)
at er.extensions.eof.ERXObjectStoreCoordinatorPool$MultiOSCFactory._newEditingContext(ERXObjectStoreCoordinatorPool.java:210)
at er.extensions.eof.ERXObjectStoreCoordinatorPool$MultiOSCFactory._newEditingContext(ERXObjectStoreCoordinatorPool.java:205)
at er.extensions.eof.ERXEC.newEditingContext(ERXEC.java:1540)
at er.extensions.appserver.ERXSession.defaultEditingContext(ERXSession.java:352)
at com.devtest.services.application.CVSession.initSession(CVSession.java:173)
at com.devtest.admin.Main.initSession(Main.java:263)
at com.devtest.admin.Main.checkChain(Main.java:91)
at com.devtest.admin.Main.<init>(Main.java:59)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at com.webobjects.foundation._NSUtilities.instantiateObject(_NSUtilities.java:614)
at com.webobjects.appserver._private.WOComponentDefinition._componentInstanceInContext(WOComponentDefinition.java:567)
at com.webobjects.appserver._private.WOComponentDefinition.componentInstanceInContext(WOComponentDefinition.java:658)
at com.webobjects.appserver.WOApplication.pageWithName(WOApplication.java:2332)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:284)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:332)
at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:369)
at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:445)
at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:1657)
at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:1621)
at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:144)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:226)


"Thread-8" prio=5 tid=0x01076950 nid=0xa6f200 waiting on condition [0xf28c0000..0xf28c2bb0]
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:716)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:746)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1076)
at java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync.wlock(ReentrantReadWriteLock.java:342)
at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:637)
at com.webobjects.eocontrol.EOSharedEditingContext.lock(EOSharedEditingContext.java:736)
at com.webobjects.eocontrol.EOEditingContext.lockObjectStore(EOEditingContext.java:4664)
at com.webobjects.eocontrol.EOEditingContext.refaultObject(EOEditingContext.java:4000)
at er.extensions.eof.ERXEC.refaultObject(ERXEC.java:1098)
at com.webobjects.eocontrol.EOEditingContext._refaultObjectWithGlobalID(EOEditingContext.java:3259)
at com.webobjects.eocontrol.EOEditingContext._newChangesFromInvalidatingObjectsWithGlobalIDs(EOEditingContext.java:3485)
at com.webobjects.eocontrol.EOEditingContext._processObjectStoreChanges(EOEditingContext.java:3522)
at sun.reflect.GeneratedMethodAccessor165.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.webobjects.foundation.NSSelector.invoke(NSSelector.java:358)
at com.webobjects.foundation.NSSelector._safeInvokeSelector(NSSelector.java:110)
at com.webobjects.eocontrol.EOEditingContext._processNotificationQueue(EOEditingContext.java:4741)
at com.webobjects.eocontrol.EOEditingContext.lock(EOEditingContext.java:4620)
at er.extensions.eof.ERXEC.lock(ERXEC.java:480)
at com.webobjects.eocontrol.EOEditingContext.tryLock(EOEditingContext.java:4632)
at com.webobjects.eocontrol.EOEditingContext._sendOrEnqueueNotification(EOEditingContext.java:4705)
at com.webobjects.eocontrol.EOEditingContext._globalIDChanged(EOEditingContext.java:2038)
at sun.reflect.GeneratedMethodAccessor172.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:122)
at com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:588)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:532)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:562)
at com.webobjects.eocontrol.EOObjectStoreCoordinator._globalIDsChangedInSubStore(EOObjectStoreCoordinator.java:698)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:122)
at com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:588)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:532)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:562)
at com.webobjects.eoaccess.EODatabaseContext.commitChanges(EODatabaseContext.java:6377)
at com.webobjects.eocontrol.EOObjectStoreCoordinator.saveChangesInEditingContext(EOObjectStoreCoordinator.java:386)
at com.webobjects.eocontrol.EOEditingContext.saveChanges(EOEditingContext.java:3192)
at er.extensions.eof.ERXEC._saveChanges(ERXEC.java:981)
at er.extensions.eof.ERXEC.saveChanges(ERXEC.java:903)
at com.devtest.services.tasks.ContentChangeTaskWrapper.createAndSaveChanges(ContentChangeTaskWrapper.java:70)
at com.devtest.services.tasks.TaskFactory.generateTaskForType(TaskFactory.java:42)
at com.devtest.services.tasks.TaskNotificationCenter.handleNotification(TaskNotificationCenter.java:70)
at com.devtest.services.tasks.TaskNotificationCenter.run(TaskNotificationCenter.java:79)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Thread.java:613)


"WorkerThread5" prio=5 tid=0x0104a500 nid=0xa5d200 waiting on condition [0xf1eae000..0xf1eaebb0]
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:716)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:746)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1076)
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:184)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:256)
at com.webobjects.eocontrol.EOEditingContext.lock(EOEditingContext.java:4617)
at er.extensions.eof.ERXEC.lock(ERXEC.java:480)
at com.webobjects.appserver.WOSession._awakeInContext(WOSession.java:835)
at com.webobjects.appserver.WOApplication.restoreSessionWithID(WOApplication.java:1917)
at er.extensions.appserver.ERXApplication.restoreSessionWithID(ERXApplication.java:1948)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:324)
at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:369)
at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:445)
at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:1657)
at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:1621)
at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:144)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:226)
at java.lang.Thread.run(Thread.java:613)

Thanks,

Saad

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Confusing lock error solved, but now a restoreSessionWithID lock issue
      • From: Guido Neitzer <email@hidden>
  • Prev by Date: Re: Documentation for WOX Flex integration
  • Next by Date: Formatting a BigDecimal in a WOString
  • Previous by thread: Fwd: Documentation for WOX Flex integration
  • Next by thread: Re: Confusing lock error solved, but now a restoreSessionWithID lock issue
  • Index(es):
    • Date
    • Thread