Skip to content

fix(plugins): install rejected plugins one at a time - #3523

Merged
datlechin merged 1 commit into
mainfrom
fix/plugin-rejected-repair-gate
Oct 18, 2026
Merged

datlechin merged 1 commit into
mainfrom
fix/plugin-rejected-repair-gate

Conversation

@datlechin

Copy link
Copy Markdown
Member

Why

Review of #3519: a connection could start installing a rejected plugin before the update pass got its manifest. The pass then tried the same plugin, reserveInstall threw "Another install is already in progress", and the pass logged an error and spent a retry. The connection path also ran in no test, since SoftwareUpdater.isUpdatingEnabled is false in Debug.

Change

  • The pass and a connection take one gate to install rejected plugins, and recheck their targets once they hold it, so neither installs a plugin the other just repaired.
  • The pass takes the gate only after its manifest arrives, and drops it before staging loaded plugins.
  • PluginManager takes isUpdatingEnabled in its init, defaulting to SoftwareUpdater.isUpdatingEnabled.

Verified

passWaitsForAConnectionsRepair() fails when the pass skips the gate; the log shows "Another install is already in progress". connectionRepairsWhileThePassWaitsForTheNetwork() replaces the test that called RegistryClient directly, and drives prepareForConnecting.

@datlechin
datlechin merged commit 2536efc into main Oct 18, 2026
7 checks passed
@datlechin
datlechin deleted the fix/plugin-rejected-repair-gate branch October 18, 2026 15:49
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.

1 participant