Skip to content

[pull] master from microsoft:master#100

Merged
pull[bot] merged 2 commits into
cgallred:masterfrom
microsoft:master
May 18, 2026
Merged

[pull] master from microsoft:master#100
pull[bot] merged 2 commits into
cgallred:masterfrom
microsoft:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented May 18, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

tyrielv added 2 commits May 18, 2026 10:09
The installer replaces GVFS.Service.exe in-place even during a staged
upgrade, so the running service is always the new version. Add a
PendingUpgradeMonitor that registers Process.Exited callbacks on
GVFS.Mount processes and applies the staged upgrade once all have
exited. This is event-driven (no polling) and works regardless of
which version of gvfs.exe triggered the unmount.

Previously only 'gvfs unmount' triggered the upgrade check (via
UnregisterRepoRequest). 'gvfs service --unmount-all' sets
SkipUnregister=true to preserve automount registration, so no message
reached the service and staged upgrades sat in PendingUpgrade\
indefinitely.

Changes:
- PendingUpgradeHandler: return UpgradeResult enum instead of void,
  add concurrency lock, add IsPending() helper
- PendingUpgradeMonitor: new class — monitors mount process exits,
  debounces (5s), retries on new mounts, self-stops on completion
- GVFSService: start monitor when startup upgrade is deferred,
  dispose on shutdown
- upgrade-tests.yaml: add unmount-all-triggers-upgrade CI scenario

Assisted-by: Claude Opus 4.6
Signed-off-by: Tyrie Vella <tyrielv@gmail.com>
…check

Apply staged upgrade when mount processes exit
@pull pull Bot locked and limited conversation to collaborators May 18, 2026
@pull pull Bot added the ⤵️ pull label May 18, 2026
@pull pull Bot merged commit db45285 into cgallred:master May 18, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant