[concurrency-interest] Deadlock with when no threads have the lock
David M. Lloyd
david.lloyd at redhat.com
Tue Jun 20 08:14:08 EDT 2017
You say *all* threads, but it's not true: all threads are not waiting on
Aside from that though, if threads are waiting, then a thread must own
the lock, and furthermore it must be a thread that is not waiting on the
lock (because they're reentrant and such an acquisition would have
succeeded and would appear in the stack trace). So, somehow the scala
block may have failed in a way that prevented the finally block from
running (stack overflow maybe, or maybe some Scala bug).
It should be possible to reflectively invoke the "getOwner()" method of
the ReentrantLock to see what thread had acquired the lock.
On 06/20/2017 06:23 AM, Alex Otenko wrote:
> https://github.com/mesosphere/marathon/blob/v1.4.2/src/main/scala/mesosphere/marathon/util/Lock.scala#L29-L30 -
> your equals method can deadlock.
> (not saying that this is the cause...)
>> On 16 Jun 2017, at 22:36, Ken Sipe <kensipe at gmail.com
>> <mailto:kensipe at gmail.com>> wrote:
>> We have encountered a strange deadlock scenario in which it appears
>> that all threads are waiting on acquiring a ReentrantLock, but no
>> thread has the lock.
>> Any thoughts on this?
>> Concurrency-interest mailing list
>> Concurrency-interest at cs.oswego.edu
>> <mailto:Concurrency-interest at cs.oswego.edu>
> Concurrency-interest mailing list
> Concurrency-interest at cs.oswego.edu
More information about the Concurrency-interest