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