|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
[jira] Created: (CAY-1120) Deadlock CayenneContextGraphManager when committing from two threadsDeadlock CayenneContextGraphManager when committing from two threads
-------------------------------------------------------------------- Key: CAY-1120 URL: https://issues.apache.org/cayenne/browse/CAY-1120 Project: Cayenne Issue Type: Bug Components: Cayenne Core Library Affects Versions: 3.0 Reporter: Ari Maniatis Assignee: Andrus Adamchik How to reproduce: * Try to commit some changes. This thread is delayed from completing the change by a lifecycle event which takes about 10 seconds to complete (in this case, contacting a credit card gateway) * while this lifecycle event is running, have another thread try to commit changes to a different context. Note that this is ROP, Cayenne 3.0 (from svn close to the M4 release) /10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- Deadlocked Thread: 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- ------------------ 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- Thread Foxtrot Multi Worker Thread Runner #4 (Id = 147) BLOCKED org.apache.cayenne.CayenneContextGraphManager@c57a5f 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.CayenneContextMergeHandler.runWithEventsDisabled(CayenneContextMergeHandler.java:267) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.CayenneContextMergeHandler.graphFlushed(CayenneContextMergeHandler.java:81) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.lang.reflect.Method.invoke(Method.java:585) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.util.Invocation.fire(Invocation.java:204) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.event.EventManager$Dispatch.fire(EventManager.java:423) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.event.DispatchQueue.dispatchEvent(DispatchQueue.java:157) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.event.DispatchQueue.dispatchEvent(DispatchQueue.java:58) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.event.EventManager.dispatchEvent(EventManager.java:362) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.event.EventManager.postEvent(EventManager.java:333) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.remote.ClientChannel.onSync(ClientChannel.java:220) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.CayenneContext.doCommitChanges(CayenneContext.java:228) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.CayenneContext.commitChanges(CayenneContext.java:187) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- ish.oncourse.cayenne.CayenneContext.commitChanges(CayenneContext.java:100) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- ish.oncourse.controller.ViewController.commitChanges(ViewController.java:1065) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- ish.oncourse.controller.EditController.saveRecord(EditController.java:622) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- ish.oncourse.controller.enrolment.QuickEnrollController.saveRecord(QuickEnrollController.java:637) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- ish.oncourse.controller.EditController$2.run(EditController.java:587) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- foxtrot.AbstractWorkerThread$1.run(AbstractWorkerThread.java:40) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.security.AccessController.doPrivileged(Native Method) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- foxtrot.AbstractWorkerThread.runTask(AbstractWorkerThread.java:36) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- foxtrot.workers.MultiWorkerThread$1.run(MultiWorkerThread.java:51) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.lang.Thread.run(Thread.java:613) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- Deadlocked Thread: 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- ------------------ 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- Thread AWT-EventQueue-0 (Id = 15) BLOCKED org.apache.cayenne.event.DispatchQueue@3688b9 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.event.DispatchQueue.dispatchEvent(DispatchQueue.java:54) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.event.EventManager.dispatchEvent(EventManager.java:362) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.event.EventManager.postEvent(EventManager.java:333) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.CayenneContextGraphManager.send(CayenneContextGraphManager.java:316) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.CayenneContextGraphManager.graphCommitted(CayenneContextGraphManager.java:147) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.CayenneContext.doCommitChanges(CayenneContext.java:242) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- org.apache.cayenne.CayenneContext.commitChanges(CayenneContext.java:187) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- ish.oncourse.cayenne.CayenneContext.commitChanges(CayenneContext.java:100) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- ish.oncourse.PreferenceController.setValue(PreferenceController.java:131) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- ish.persistence.CommonPreferenceController.setListViewDividerPosition(CommonPreferenceController.java:1133) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- ish.oncourse.controller.ListController.dispose(ListController.java:778) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- ish.oncourse.controller.ViewController.windowClosing(ViewController.java:812) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:292) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:291) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.Window.processWindowEvent(Window.java:1213) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- javax.swing.JFrame.processWindowEvent(JFrame.java:267) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.Window.processEvent(Window.java:1171) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.Component.dispatchEventImpl(Component.java:4068) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.Container.dispatchEventImpl(Container.java:2068) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.Window.dispatchEventImpl(Window.java:1801) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.Component.dispatchEvent(Component.java:3903) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.EventQueue.dispatchEvent(EventQueue.java:463) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176) 3/10/08 10:04:43 AM [0x0-0xc30c3].au.ish.com.oncourse.client[1667] -- java.awt.EventDispatchThread.run(EventDispatchThread.java:110) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. |
| Free Forum Powered by Nabble | Forum Help |