Skip to content

Detect obsolete daemons across same-version builds #1184

Description

@jbellis

Problem

Automatic daemon replacement misses different builds with the same package version. A newly installed client can reuse an older daemon that does not support its configuration fields.

Reproduction

  1. Start a daemon from a build without a newly introduced configuration field.
  2. Install a newer build with the same package version and protocol, requiring no database migration.
  3. Configure the new field and launch the new client.
  4. Run an operation that reloads configuration.

The old daemon remains running and rejects the new field.

Expected behavior

Detect obsolete daemons across same-version builds using build identity and route replacement through the existing safe handoff mechanism. Preserve active workers and accepted work, and retain downgrade protection.

Implementation context

The startup replacement decision checks protocol version, release version, and database migration needs, but does not compare build identity.

Add an isolated regression for changed build identity with unchanged release, protocol, and schema. Repeated launches of the same build should not replace the daemon.

Impact: low; limited to same-version builds, with explicit daemon restart as a workaround.
Effort: low (effort: S).

Activity

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

Metadata

Metadata

Assignees

Labels

area:runtimeACP runtime, process management, and session command flowbugSomething isn't workingeffort: SUnder about half a day: one localized change, clear fix, no design neededimpact: lowCosmetic, rare, or has an easy workaround

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions