Skip to content

fix(install): pass the S15 owner-link pipe flag and keep package managers off the terminal - #390

Merged
chayapats merged 1 commit into
mainfrom
jit/341-installer-live-fixes
Nov 3, 2026
Merged

chayapats merged 1 commit into
mainfrom
jit/341-installer-live-fixes

Conversation

@chayapats

Copy link
Copy Markdown
Owner

Fixes #389. Part of #341.

What failed on the real host

The first production install.sh --s15 on jit-vm (main 9082327) hit two failures that the dry-run suite cannot see:

  1. Hang in dependencies. apt-get ran under timeout 600 with the operator terminal as stdin. timeout gives its child its own process group. When apt actually installed packages (the protected browser's fonts), it reconfigured the terminal after dpkg, and the kernel stopped it and timeout with SIGTTOU (T, do_signal_stop). The timer never fired, so the install hung forever under the documented ssh -t path.
  2. owner-link-prepare always failed. The installer ran owner-link --s15 --config <path>. selectRuntime accepts S15 owner-link only with --output-fd 3, so the CLI refused and the fresh-install rollback removed the new state. The dry-run tests stub the owner link, so the argv was never checked.

Changes

  • install.sh: every apt-get/apt-cache/dnf call reads /dev/null. timeout and the output redirection are unchanged.
  • ops/package/installer/s15.ts: the owner-link argv now comes from the exported s15OwnerLinkArguments(configPath), which adds --output-fd 3. Delivery is unchanged: fd 3 → /dev/tty, after health, never to logs.
  • tests/s15-installer.test.ts: two new tests. One checks that selectRuntime accepts the installer's argv and refuses it without the pipe flag. The other checks that every package-manager call in install.sh redirects stdin from /dev/null.

Evidence

  • Focused: bun test tests/s15-installer.test.ts -t "owner-link command is the spelling|never gives a package manager": 2 pass.
  • Live: a fresh install.sh --s15 --yes of this branch on jit-vm, run under a pty with the output discarded so the owner link is never seen. It passed dependencies, owner-link-prepare, health and owner-link, and followed the working computer to Ready (QEMU as jit-s15-vmm; the pinned Chromium downloaded and verified). No owner link appears in the install log or the jit-s15 journal. The full result goes on [Frontier] [CUT15-01] Install S15 fresh on jit-vm with owner acceptance and a recoverable install #341.

CI runs the full suite.

…gers off the terminal

The S15 installer issued the first-owner link with 'owner-link --s15 --config <path>',
which the CLI's runtime selection refuses without '--output-fd 3', so every real
fresh install stopped at owner-link-prepare and rolled back.

install.sh ran apt/dnf under 'timeout' (own process group) with the operator
terminal as stdin. When apt actually installed a package it reconfigured the
terminal from outside the foreground group and was stopped by SIGTTOU, hanging
the install forever under 'ssh -t'. Package managers now read /dev/null.
@greptile-apps

greptile-apps Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable issues were found.

Summary

Fixes two installation failures:

  • Package installs no longer take input from the operator terminal.
  • S15 setup can prepare its owner link through the private pipe.

No actionable issues were found.

Reviews (1) · Last reviewed commit: "fix(install): pass the S15 owner-link pi..." · Reviewed by Greptile

@chayapats
chayapats merged commit c131d5f into main Nov 3, 2026
15 checks passed
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.

[Standard] [OPS15-02] Fix the two live-only S15 installer failures found on the jit-vm production install

1 participant