Skip to content

Env, args and protocol changes are invisible once rescan applies them (#108 residual) #135

Description

@iceteaSA

Problem. After ck module rescan applies a change that touches only env, args or protocol, every surface says the running module is current while the process still runs the old spec. ck module list shows reload nothing, pending_reload shows path and image match, and a second rescan --dry-run reports no changes. The #108 fix covers the program path and a swapped binary, as ruled there; these fields were out of scope.

Evidence (master 5d1501d).

  • PendingReloadVerdict carries only path and image (crates/subc-control/src/lib.rs:615-617).
  • The rescan compares config against the stored spec (crates/subc-daemon/src/control.rs:4064-4069), and apply overwrites the stored spec through update_configuration (:4154-4158). After apply, nothing is left to differ.
  • docs/daemon-config.md:141-143 names protocol (and args) changes as pending-reload differences.
  • Repro on our install (2026-09-24): I removed one env var from a module's entry, and rescan printed changed-pending-reload. Afterwards the list said nothing and the dry-run said "no changes", while the running process's environment still had the removed variable.

Question. Which of these?

I recommend (b) and can build it if you want it.

No activity

Activity on this issue will appear here.

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

    design-approvedDesign agreed by a maintainer; a PR referencing this issue can be reviewed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions