You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the user continuously presses DPad Right and Back buttons to spam opening and closing the Passport app, furi_check eventually triggers. I found it to be the easiest to reproduce on a Senpai animation.
Reproduction
Press DPad Right.
Immediately press Back without giving the Passport app the chance to open.
The check is triggered with a furi_semaphore_acquire from desktop_loader_callback timing out. By adding additional logging I found out that when it crashes, DesktopGlobalBeforeAppStarted does not even begin processing, and therefore does not release the semaphore on time. My suspicion is that the view dispatcher queue, while not full (as view_dispatcher_send_custom_event(desktop->view_dispatcher, DesktopGlobalBeforeAppStarted); went through), is probably busy processing other kind of events and does not get to processing DesktopGlobalBeforeAppStarted in time.
Looking at the logs spamming [I][SavedStruct] Loading "/int/.desktop.settings" just before the crash, maybe the desktop reloads multiple times in those conditions? I also verified with additional logging that by the time it crashes, DesktopGlobalAfterAppFinished is also not being processed.
The text was updated successfully, but these errors were encountered:
Describe the bug.
When the user continuously presses DPad Right and Back buttons to spam opening and closing the Passport app,
furi_check
eventually triggers. I found it to be the easiest to reproduce on a Senpai animation.Reproduction
furi_check
triggers.Target
No response
Logs
Anything else?
The check is triggered with a
furi_semaphore_acquire
fromdesktop_loader_callback
timing out. By adding additional logging I found out that when it crashes,DesktopGlobalBeforeAppStarted
does not even begin processing, and therefore does not release the semaphore on time. My suspicion is that the view dispatcher queue, while not full (asview_dispatcher_send_custom_event(desktop->view_dispatcher, DesktopGlobalBeforeAppStarted);
went through), is probably busy processing other kind of events and does not get to processingDesktopGlobalBeforeAppStarted
in time.Looking at the logs spamming
[I][SavedStruct] Loading "/int/.desktop.settings"
just before the crash, maybe the desktop reloads multiple times in those conditions? I also verified with additional logging that by the time it crashes,DesktopGlobalAfterAppFinished
is also not being processed.The text was updated successfully, but these errors were encountered: