Skip to content

Crash in Impactor 2.6.1 #243

Description

@xzadik

Content

Found a crash in Impactor 2.6.1 (macOS 15.7.7, arm64)

repro: click Add Tweak → while the file picker is open, drag a file onto it → abort

it's the blocking rfd. package.rs calls rfd::FileDialog::new()...pick_files()
straight inside Iced's update(), 4 spots:

156 AddTweak
171 AddBundle
198 SetCustomIcon
218 SetCustomEntitlements

that blocks the event loop inside -[NSSavePanel runModal]. AppKit spins a nested
runloop for the modal, a drag comes in via NSCoreDragTrackingProc and dispatches
back into the app while update() is still on the stack → re-entry → panic → abort.

crash log matches frame for frame:
39 -[NSSavePanel runModal]
21 NSCoreDragTrackingProc
19 -[NSRunLoop runMode:beforeDate:]
15 CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK
2 abort

fix is already in the repo — subscriptions.rs:461 uses rfd::AsyncFileDialog with
.await. those 4 just need Task::perform instead of blocking + Task::none().

side note, probably same root cause: the Tweaks section has no drop target, only

  • Add Tweak. if drops worked there nobody'd be dragging onto a modal picker.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions