Skip to content

fix: release paused flows when alert delivery fails - #903

Open
forsurprisinglyglass wants to merge 1 commit into
objective-see:masterfrom
forsurprisinglyglass:fix/release-paused-flows-on-alert-failure
Open

fix: release paused flows when alert delivery fails#903
forsurprisinglyglass wants to merge 1 commit into
objective-see:masterfrom
forsurprisinglyglass:fix/release-paused-flows-on-alert-failure

Conversation

@forsurprisinglyglass

@forsurprisinglyglass forsurprisinglyglass commented Jul 27, 2026

Copy link
Copy Markdown

Summary

This addresses one likely paused-flow retention path behind #873.

Root Cause

deliverAlert:reply: returns success immediately after sending the async XPC request. If that proxy fails afterward, the caller has already treated the alert as delivered, stored it in shownAlerts, and kept the flow paused. Because no reply callback fires on that path, the paused flow can remain held indefinitely.

Fix

  • route post-send XPC proxy failures back through the reply callback
  • make the callback single-shot so success/error cannot both run cleanup
  • on a nil reply, remove the shown alert entry and resume held flows for that process key

Validation

  • syntax-checked the touched Objective-C files
  • ran LuLu/Tests/run_passive_mode_tests.sh successfully (9/9)
  • exercised a local harness for the async failure path to confirm single-shot callback + paused-flow cleanup

Scope

This addresses one likely retention path from #873. I have not confirmed end-to-end that it resolves every memory-growth report behind the issue.

Fixes #873

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Memory leak in com.objective-see.lulu.extension on LuLu 4.3.1

1 participant