Hi Dov,

Thanks for the input.  I did find one quartz job that I'm passing EOs into.
 But inside the quartz job I create a new editing contenxt use
editingContext.faultForGlobalID to bring those objects into the local
editing context, and then I dispose that editingContext in a finally block.
 Is disposing editingContexts what you mean by cleaning up after myself, or
is there more to it?


On Wed, Dec 8, 2010 at 11:45 AM, Dov Rosenberg <drosenb...@inquira.com>wrote:

> My guess is that you passed some EOs into your quartz scheduler that is
> running in a separate thread. That is a good way to shoot yourself in the
> foot. Just pass in identifiers to your thread and refetch them in the scope
> of the thread and clean up after your self inside the thread.
>
> Dov Rosenberg
>
>
> On 12/8/10 11:27 AM, "Greg Lappen" <g...@lapcominc.com> wrote:
>
> Hi everyone, was wondering if anyone was up for a game of "spot the
> deadlock" today.  I have a thread dump which I have removed duplicates from
> and cleaned up a bit.  It seems that a lot of threads are BLOCKED waiting on
> the EOObjectStoreCoordinator.lock() call
>
> Deadlock Detection:
>
> No deadlocks found.
>
> Thread t...@44035: (state = BLOCKED)
>  - java.lang.Thread.sleep(long) @bci=0 (Compiled frame; information may be
> imprecise)
>  - sun.security.pkcs11.SunPKCS11$TokenPoller.run() @bci=20, line=692
> (Compiled frame)
>  - java.lang.Thread.run() @bci=11, line=680 (Interpreted frame)
>
>
> Thread t...@44291: (state = BLOCKED)
>  - java.net.PlainSocketImpl.accept(java.net.SocketImpl) @bci=0, line=388
> (Interpreted frame)
>  - java.net.ServerSocket.implAccept(java.net.Socket) @bci=60, line=453
> (Interpreted frame)
>  - java.net.ServerSocket.accept() @bci=48, line=421 (Interpreted frame)
>  - com.webobjects.appserver._private.WOWorkerThread.run() @bci=26, line=210
> (Interpreted frame)
>  - java.lang.Thread.run() @bci=11, line=680 (Interpreted frame)
>
>
> Thread t...@46083: (state = BLOCKED)
>  - sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
>  - java.util.concurrent.locks.LockSupport.park(java.lang.Object) @bci=14,
> line=158 (Interpreted frame)
>  -
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt()
> @bci=1, line=811 (Interpreted frame)
>  -
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(java.util.concurrent.locks.AbstractQueuedSynchronizer$Node,
> int) @bci=48, line=842 (Interpreted frame)
>  - java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(int)
> @bci=17, line=1178 (Compiled frame)
>  - java.util.concurrent.locks.ReentrantLock$NonfairSync.lock() @bci=21,
> line=186 (Compiled frame)
>  - java.util.concurrent.locks.ReentrantLock.lock() @bci=4, line=262
> (Compiled frame)
>  - com.webobjects.eocontrol.EOObjectStoreCoordinator.lock() @bci=4,
> line=420 (Compiled frame)
>  - com.webobjects.eocontrol.EOEditingContext.lockObjectStore() @bci=41,
> line=4666 (Compiled frame)
>  -
> com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(com.webobjects.eocontrol.EOFetchSpecification,
> com.webobjects.eocontrol.EOEditingContext) @bci=70, line=4067 (Interpreted
> frame)
>  -
> com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(com.webobjects.eocontrol.EOFetchSpecification)
> @bci=3, line=4444 (Interpreted frame)
>  -
> com.webobjects.eoaccess.EOUtilities.objectWithPrimaryKey(com.webobjects.eocontrol.EOEditingContext,
> java.lang.String, com.webobjects.foundation.NSDictionary) @bci=34, line=461
> (Interpreted frame)
>  -
> com.webobjects.eoaccess.EOUtilities.objectWithPrimaryKeyValue(com.webobjects.eocontrol.EOEditingContext,
> java.lang.String, java.lang.Object) @bci=10, line=432 (Interpreted frame)
>  - net.paperfree.lightbeam.DocumentEmailAction.deliverDocumentAction()
> @bci=211, line=59 (Interpreted frame)
>
>
> Thread t...@46595: (state = BLOCKED)
>  - sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
>  - java.util.concurrent.locks.LockSupport.park(java.lang.Object) @bci=14,
> line=158 (Interpreted frame)
>  -
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt()
> @bci=1, line=811 (Interpreted frame)
>  -
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(java.util.concurrent.locks.AbstractQueuedSynchronizer$Node,
> int) @bci=48, line=842 (Interpreted frame)
>  - java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(int)
> @bci=17, line=1178 (Compiled frame)
>  - java.util.concurrent.locks.ReentrantLock$NonfairSync.lock() @bci=21,
> line=186 (Compiled frame)
>  - java.util.concurrent.locks.ReentrantLock.lock() @bci=4, line=262
> (Compiled frame)
>  - com.webobjects.eocontrol.EOObjectStoreCoordinator.lock() @bci=4,
> line=420 (Compiled frame)
>  - com.webobjects.eocontrol.EOEditingContext.lockObjectStore() @bci=41,
> line=4666 (Compiled frame)
>  -
> com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(com.webobjects.eocontrol.EOFetchSpecification,
> com.webobjects.eocontrol.EOEditingContext) @bci=70, line=4067 (Interpreted
> frame)
>  -
> com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(com.webobjects.eocontrol.EOFetchSpecification)
> @bci=3, line=4444 (Interpreted
>  frame)
>  - net.paperfree.lightbeam.LBEntityHelper.getTimezones() @bci=20, line=135
> (Interpreted frame)
>  - net.paperfree.lightbeam.components.LoginPage.timeZones() @bci=4,
> line=120 (Interpreted frame)
>
>
> Thread t...@48387: (state = BLOCKED)
>  - java.lang.Object.wait(long) @bci=0 (Compiled frame; information may be
> imprecise)
>  - org.quartz.simpl.SimpleThreadPool.runInThread(java.lang.Runnable)
> @bci=58, line=384 (Compiled frame)
>  - org.quartz.core.QuartzSchedulerThread.run() @bci=665, line=369 (Compiled
> frame)
>
>
> Thread t...@48643: (state = BLOCKED)
>  -
> net.paperfree.lightbeam.MessageDeliveryJob.execute(org.quartz.JobExecutionContext)
> @bci=5, line=20 (Interpreted frame)
>  - org.quartz.core.JobRunShell.run() @bci=201, line=203 (Interpreted frame)
>  - org.quartz.simpl.SimpleThreadPool$WorkerThread.run() @bci=49, line=520
> (Compiled frame)
>
> Thread t...@50947: (state = BLOCKED)
>  - sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
>  - java.util.concurrent.locks.LockSupport.park(java.lang.Object) @bci=14,
> line=158 (Interpreted frame)
>  -
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt()
> @bci=1, line=811 (Interpreted frame)
>  -
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(java.util.concurrent.locks.AbstractQueuedSynchronizer$Node,
> int) @bci=48, line=842 (Interpreted frame)
>  - java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(int)
> @bci=17, line=1178 (Compiled frame)
>  - java.util.concurrent.locks.ReentrantLock$NonfairSync.lock() @bci=21,
> line=186 (Compiled frame)
>  - java.util.concurrent.locks.ReentrantLock.lock() @bci=4, line=262
> (Compiled frame)
>  - com.webobjects.eocontrol.EOObjectStoreCoordinator.lock() @bci=4,
> line=420 (Compiled frame)
>  - com.webobjects.eocontrol.EOEditingContext.lockObjectStore() @bci=41,
> line=4666 (Compiled frame)
>  -
> com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(com.webobjects.eocontrol.EOFetchSpecification,
> com.webobjects.eocontrol.EOEditingContext) @bci=70, line=4067 (Interpreted
> frame)
>  -
> com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(com.webobjects.eocontrol.EOFetchSpecification)
> @bci=3, line=4444 (Interpreted frame)
>  -
> net.paperfree.lightbeam.MessageDeliveryJob.execute(org.quartz.JobExecutionContext)
> @bci=42, line=25 (Interpreted frame)
>  - org.quartz.core.JobRunShell.run() @bci=201, line=203 (Interpreted frame)
>  - org.quartz.simpl.SimpleThreadPool$WorkerThread.run() @bci=49, line=520
> (Compiled frame)
>
>
> Thread t...@51203: (state = BLOCKED)
>  - java.lang.Thread.sleep(long) @bci=0 (Compiled frame; information may be
> imprecise)
>  - org.apache.log4j.helpers.FileWatchdog.run() @bci=11, line=103 (Compiled
> frame)
>
>
> Thread t...@51459: (state = BLOCKED)
>  - java.lang.Thread.sleep(long) @bci=0 (Compiled frame; information may be
> imprecise)
>  - com.webobjects.appserver.WOApplication$_LifebeatThread.run() @bci=233,
> line=1619 (Compiled frame)
>
>
> Thread t...@51715: (state = BLOCKED)
>  - java.lang.Thread.sleep(long) @bci=0 (Compiled frame; information may be
> imprecise)
>  - com.webobjects.appserver.WOSessionStore$_SessionTimeoutManager.run()
> @bci=12, line=98 (Compiled frame)
>  - java.lang.Thread.run() @bci=11, line=680 (Interpreted frame)
>
>
> Thread t...@51971: (state = BLOCKED)
>
>
> Thread t...@52227: (state = BLOCKED)
>
>
> Thread t...@52483: (state = BLOCKED)
>  - sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
>  - java.util.concurrent.locks.LockSupport.park(java.lang.Object) @bci=14,
> line=158 (Interpreted frame)
>  -
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt()
> @bci=1, line=811 (Interpreted frame)
>  -
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(java.util.concurrent.locks.AbstractQueuedSynchronizer$Node,
> int) @bci=48, line=842 (Interpreted frame)
>  - java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(int)
> @bci=17, line=1178 (Compiled frame)
>  - java.util.concurrent.locks.ReentrantLock$NonfairSync.lock() @bci=21,
> line=186 (Compiled frame)
>  - java.util.concurrent.locks.ReentrantLock.lock() @bci=4, line=262
> (Compiled frame)
>  - com.webobjects.eocontrol.EOObjectStoreCoordinator.lock() @bci=4,
> line=420 (Compiled frame)
>  - com.webobjects.eocontrol.EOEditingContext.lockObjectStore() @bci=41,
> line=4666 (Compiled frame)
>  - com.webobjects.eocontrol.EOEditingContext._dispose(boolean) @bci=181,
> line=1172 (Compiled frame)
>  - com.webobjects.eocontrol.EOEditingContext.finalize() @bci=9, line=1239
> (Interpreted frame)
>  - java.lang.ref.Finalizer.invokeFinalizeMethod(java.lang.Object) @bci=0
> (Compiled frame)
>  - java.lang.ref.Finalizer.runFinalizer() @bci=45, line=83 (Compiled frame)
>  - java.lang.ref.Finalizer.access$100(java.lang.ref.Finalizer) @bci=1,
> line=14 (Compiled frame)
>  - java.lang.ref.Finalizer$FinalizerThread.run() @bci=11, line=160
> (Compiled frame)
>
>
> Thread t...@52739: (state = BLOCKED)
>  - java.lang.Object.wait(long) @bci=0 (Compiled frame; information may be
> imprecise)
>  - java.lang.Object.wait() @bci=2, line=485 (Compiled frame)
>  - java.lang.ref.Reference$ReferenceHandler.run() @bci=46, line=116
> (Compiled frame)
>
>
> Thread t...@52995: (state = BLOCKED)
>  - java.lang.Object.wait(long) @bci=0 (Compiled frame; information may be
> imprecise)
>  -
> com.webobjects.appserver._WORunLoop._acceptInputBeforeDate(com.webobjects.foundation.NSTimestamp)
> @bci=98, line=244 (Interpreted frame)
>  -
> com.webobjects.appserver._WORunLoop.runBeforeDate(com.webobjects.foundation.NSTimestamp)
> @bci=39, line=95 (Interpreted frame)
>  - com.webobjects.appserver.WOApplication._runOnce() @bci=17, line=1095
> (Interpreted frame)
>  - com.webobjects.appserver.WOApplication.run() @bci=106, line=1248
> (Interpreted frame)
>  - com.webobjects.appserver.WOApplication.main(java.lang.String[],
> java.lang.Class) @bci=55, line=548 (Interpreted frame)
>  - net.paperfree.lightbeam.Application.main(java.lang.String[]) @bci=3,
> line=68 (Interpreted frame)
>  - sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method,
> java.lang.Object, java.lang.Object[]) @bci=0 (Interpreted frame)
>  - sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object,
> java.lang.Object[]) @bci=87, line=39 (Interpreted frame)
>  - sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object,
> java.lang.Object[]) @bci=6, line=25 (Interpreted frame)
>  - java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])
> @bci=161, line=597 (Interpreted frame)
>  - com.webobjects._bootstrap.WOBootstrap.main(java.lang.String[]) @bci=118,
> line=87 (Interpreted frame)
>
> Any help with this would be greatly appreciated.
>
> Greg
>
>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to