On Dec 8, 2010, at 7:24 PM, Greg Lappen wrote: > Thanks for taking the time to look.... > > I don't have any code that is directly calling methods on the osc - does > locking editing contexts cause the underlying osc to get locked?
No, not directly. Fetching and saving cause OSC locks. Those should be released automatically. If you are using Wonder, it is possible that something you are using has a bug that is leaving a hanging lock. Is there a more recent version you could update to? Running out of memory can also sometimes cause this (and a lot of other unpredictable chaos). Check the log for "heap" and "OutOfMemory". Otherwise, some code in your app or in some code you are using is locking the OSC and not unlocking it. > Just wondering what kind of cleanup code is in the hypothetical missing > finally block that I need to find. osc.unlock() Chuck > > Thanks again! > > On Wed, Dec 8, 2010 at 11:36 AM, Mike Schrag <msch...@pobox.com> wrote: > you can't spot the deadlock here ... it means a previous thread left the osc > locked and went away. because there's no thread BEYOND that lock, it means > the thread is gone now and you'll have to try and track down the one the had > a problem. I would look for possibly exceptions that were thrown in the logs > that might have not had a finally? > > On Dec 8, 2010, at 11:27 AM, Greg Lappen 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/mschrag%40pobox.com > > > > This email sent to msch...@pobox.com > > > _______________________________________________ > 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/chill%40global-village.net > > This email sent to ch...@global-village.net -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ 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