Change theme
Help
Press space for more information.
Show links for this issue (Shortcut: i, l)
Copy issue ID
Previous Issue (Shortcut: k)
Next Issue (Shortcut: j)
Sign in to use full features.
Vote: I am impacted
Notification menu
Refresh (Shortcut: Shift+r)
Go home (Shortcut: u)
Pending code changes (auto-populated)
View issue level access limits(Press Alt + Right arrow for more information)
Attachment actions
Unintended behavior
View staffing
Description
Jetpack Compose version: 1.7.3
Jetpack Compose component used: Recomposer (?) together with Molecule
Kotlin version: 2.1.20-RC2
Steps to Reproduce or Code Sample to Reproduce: The issue seems to be elusive, no reliable steps to reproduce it, unfortunately.
Original report:https://youtrack.jetbrains.com/issue/IJPL-182261/Possible-deadlock-at-compose.runtime.BroadcastFrameClock
Analysis based on the stack trace:
BroadcastFrameClock.sendFrame()
resumes a FrameAwaiter while holdingBroadcastFrameClock.lock
, which then attempts to acquire theRecomposer.stateLock
.effectJob
completion handler callsrunnerJob.cancel(cancellation)
while holdingstateLock
, and that synchronously invokes the completion handler installed byBroadcastFrameClock.withFrameNanos
, which attempts to grab itslock
to executeawaiters.remove(awaiter)
.Stack trace: