[Swift-devel] Deadlock with current Swift trunk

Mihael Hategan hategan at mcs.anl.gov
Mon Mar 7 18:26:50 CST 2011


Should be fixed in swift trunk r4173.

As a side note, I'm still a little uncertain about the necessity to lock
on the root of a piece of data for every operation on that data. We may
want to think about that a bit harder.

On Mon, 2011-03-07 at 13:14 -0800, Mihael Hategan wrote:
> Yes. I saw it. I'll try to fix it as soon as I can. Thanks for the
> report.
> 
> Mihael
> 
> On Mon, 2011-03-07 at 14:24 -0600, Tim Armstrong wrote:
> > Hi All,
> >   I just wanted to send an email to the list to draw attention to a
> > bug report I posted on the bugzilla.  I spent some time today to get
> > some additional information on the issue and have confirmed that the
> > problem is a Java thread deadlock.
> > https://bugzilla.mcs.anl.gov/swift/show_bug.cgi?id=257
> > 
> > Unfortunately this bug seems to be triggered quite frequently by the
> > script used by SwiftR, so this is forcing us to use the pre-fast
> > branch Swift trunk/
> > 
> > Cheers,
> > Tim
> > 
> > 
> > Found one Java-level deadlock:
> > =============================
> > "pool-1-thread-7":
> >   waiting to lock monitor 0x00007f8a1cc49450 (object
> > 0x00007f8a2e3d7288, a org.griphyn.vdl.karajan.DSHandleFutureWrapper),
> >   which is held by "pool-1-thread-1"
> > "pool-1-thread-1":
> >   waiting to lock monitor 0x00007f8a186c72e0 (object
> > 0x00007f8a2e20d0a0, a org.griphyn.vdl.mapping.RootDataNode),
> >   which is held by "pool-1-thread-7"
> > 
> > Java stack information for the threads listed above:
> > ===================================================
> > "pool-1-thread-7":
> >     at
> > org.griphyn.vdl.karajan.DSHandleFutureWrapper.notifyListeners(DSHandleFutureWrapper.java:65)
> >     - waiting to lock <0x00007f8a2e3d7288> (a
> > org.griphyn.vdl.karajan.DSHandleFutureWrapper)
> >     at
> > org.griphyn.vdl.karajan.DSHandleFutureWrapper.handleClosed(DSHandleFutureWrapper.java:116)
> >     at
> > org.griphyn.vdl.mapping.AbstractDataNode.notifyListeners(AbstractDataNode.java:583)
> >     - locked <0x00007f8a2e20d0a0> (a
> > org.griphyn.vdl.mapping.RootDataNode)
> >     at
> > org.griphyn.vdl.mapping.AbstractDataNode.closeShallow(AbstractDataNode.java:396)
> >     - locked <0x00007f8a2e20d0a0> (a
> > org.griphyn.vdl.mapping.RootDataNode)
> >     at
> > org.griphyn.vdl.mapping.AbstractDataNode.setValue(AbstractDataNode.java:346)
> >     at
> > org.griphyn.vdl.mapping.RootDataNode.setValue(RootDataNode.java:218)
> >     at
> > org.griphyn.vdl.karajan.lib.SetFieldValue.deepCopy(SetFieldValue.java:88)
> >     at
> > org.griphyn.vdl.karajan.lib.SetFieldValue.function(SetFieldValue.java:50)
> >     - locked <0x00007f8a2e20d0a0> (a
> > org.griphyn.vdl.mapping.RootDataNode)
> >     at
> > org.griphyn.vdl.karajan.lib.VDLFunction.post(VDLFunction.java:68)
> >     at
> > org.globus.cog.karajan.workflow.nodes.AbstractSequentialWithArguments.completed(AbstractSequentialWithArguments.java:196)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:214)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowContainer.post(FlowContainer.java:58)
> >     at
> > org.globus.cog.karajan.workflow.nodes.functions.Argument.post(Argument.java:48)
> >     at
> > org.globus.cog.karajan.workflow.nodes.AbstractSequentialWithArguments.completed(AbstractSequentialWithArguments.java:196)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:214)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowContainer.post(FlowContainer.java:58)
> >     at
> > org.globus.cog.karajan.workflow.nodes.functions.AbstractFunction.post(AbstractFunction.java:28)
> >     at
> > org.globus.cog.karajan.workflow.nodes.AbstractSequentialWithArguments.completed(AbstractSequentialWithArguments.java:196)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:214)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowContainer.post(FlowContainer.java:58)
> >     at
> > org.globus.cog.karajan.workflow.nodes.functions.AbstractFunction.post(AbstractFunction.java:28)
> >     at
> > org.globus.cog.karajan.workflow.nodes.Sequential.startNext(Sequential.java:29)
> >     at
> > org.globus.cog.karajan.workflow.nodes.Sequential.executeChildren(Sequential.java:20)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowContainer.execute(FlowContainer.java:63)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowNode.restart(FlowNode.java:139)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowNode.start(FlowNode.java:197)
> >     at
> > org.globus.cog.karajan.workflow.FlowElementWrapper.start(FlowElementWrapper.java:227)
> >     at
> > org.globus.cog.karajan.workflow.events.EventBus.start(EventBus.java:104)
> >     at
> > org.globus.cog.karajan.workflow.events.EventTargetPair.run(EventTargetPair.java:40)
> >     at java.util.concurrent.Executors
> > $RunnableAdapter.call(Executors.java:441)
> >     at java.util.concurrent.FutureTask
> > $Sync.innerRun(FutureTask.java:303)
> >     at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> >     at java.util.concurrent.ThreadPoolExecutor
> > $Worker.runTask(ThreadPoolExecutor.java:886)
> >     at java.util.concurrent.ThreadPoolExecutor
> > $Worker.run(ThreadPoolExecutor.java:908)
> >     at java.lang.Thread.run(Thread.java:619)
> > "pool-1-thread-1":
> >     at org.griphyn.vdl.karajan.lib.SwiftArg.unwrap(SwiftArg.java:52)
> >     - waiting to lock <0x00007f8a2e20d0a0> (a
> > org.griphyn.vdl.mapping.RootDataNode)
> >     at org.griphyn.vdl.karajan.lib.SwiftArg
> > $Vargs.asArray(SwiftArg.java:177)
> >     at
> > org.griphyn.vdl.karajan.lib.swiftscript.Misc.swiftscript_strcat(Misc.java:77)
> >     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:597)
> >     at
> > org.globus.cog.karajan.workflow.nodes.functions.FunctionsCollection.function(FunctionsCollection.java:82)
> >     at
> > org.globus.cog.karajan.workflow.nodes.functions.AbstractFunction.post(AbstractFunction.java:27)
> >     at
> > org.globus.cog.karajan.workflow.nodes.AbstractSequentialWithArguments.futureModified(AbstractSequentialWithArguments.java:210)
> >     at
> > org.griphyn.vdl.karajan.DSHandleFutureWrapper.notifyListeners(DSHandleFutureWrapper.java:71)
> >     - locked <0x00007f8a2e3d7288> (a
> > org.griphyn.vdl.karajan.DSHandleFutureWrapper)
> >     at
> > org.griphyn.vdl.karajan.DSHandleFutureWrapper.addModificationAction(DSHandleFutureWrapper.java:60)
> >     - locked <0x00007f8a2e3d7288> (a
> > org.griphyn.vdl.karajan.DSHandleFutureWrapper)
> >     at
> > org.globus.cog.karajan.workflow.nodes.AbstractSequentialWithArguments.completed(AbstractSequentialWithArguments.java:199)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:214)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowContainer.post(FlowContainer.java:58)
> >     at
> > org.globus.cog.karajan.workflow.nodes.functions.AbstractFunction.post(AbstractFunction.java:28)
> >     at
> > org.globus.cog.karajan.workflow.nodes.Sequential.startNext(Sequential.java:29)
> >     at
> > org.globus.cog.karajan.workflow.nodes.Sequential.executeChildren(Sequential.java:20)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowContainer.execute(FlowContainer.java:63)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowNode.restart(FlowNode.java:139)
> >     at
> > org.globus.cog.karajan.workflow.nodes.FlowNode.start(FlowNode.java:197)
> >     at
> > org.globus.cog.karajan.workflow.FlowElementWrapper.start(FlowElementWrapper.java:227)
> >     at
> > org.globus.cog.karajan.workflow.events.EventBus.start(EventBus.java:104)
> >     at
> > org.globus.cog.karajan.workflow.events.EventTargetPair.run(EventTargetPair.java:40)
> >     at java.util.concurrent.Executors
> > $RunnableAdapter.call(Executors.java:441)
> >     at java.util.concurrent.FutureTask
> > $Sync.innerRun(FutureTask.java:303)
> >     at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> >     at java.util.concurrent.ThreadPoolExecutor
> > $Worker.runTask(ThreadPoolExecutor.java:886)
> >     at java.util.concurrent.ThreadPoolExecutor
> > $Worker.run(ThreadPoolExecutor.java:908)
> >     at java.lang.Thread.run(Thread.java:619)
> > 
> > Found 1 deadlock.
> > 
> > _______________________________________________
> > Swift-devel mailing list
> > Swift-devel at ci.uchicago.edu
> > http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel
> 
> 
> _______________________________________________
> Swift-devel mailing list
> Swift-devel at ci.uchicago.edu
> http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel





More information about the Swift-devel mailing list