Yeah it's a deadlock in mir, specifically between the compositor Thread and the main loop:
The TimeoutFrameDroppingPolicy has timedout, so it owns the internal alarm mutex and attemps to drop a frame, so it waits for the BufferQueue mutex.
The compositor thread is releasing a buffer, so it calls BufferQeueue::compositor_release, which owns the BufferQueue mutex and attempts to update the TimeoutFrameDroppingPolicy (since a buffer is being freed) but it waits to own the internal alarm mutex so deadlock.
Yeah it's a deadlock in mir, specifically between the compositor Thread and the main loop:
The TimeoutFrameDro ppingPolicy has timedout, so it owns the internal alarm mutex and attemps to drop a frame, so it waits for the BufferQueue mutex.
The compositor thread is releasing a buffer, so it calls BufferQeueue: :compositor_ release, which owns the BufferQueue mutex and attempts to update the TimeoutFrameDro ppingPolicy (since a buffer is being freed) but it waits to own the internal alarm mutex so deadlock.