Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

fix(utmctl): attach help promises unimplemented serial redirection

Aperta Adatta ai principianti
#7,987 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
75/100
Tipo di issue
Documentazione
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
swift
Ambito
cli, documentation

Direzione di ricerca

Leggi l’implementazione del comando attach in utmctl/UTMCtl.swift, righe 449–489, e confronta il suo output con l’abstract del comando e la tabella dei comandi di scripting. Aggiorna la guida e la documentazione per descrivere la rilevazione degli endpoint e chiarire che il reindirizzamento seriale interattivo non è disponibile. Verifica che la formulazione corrisponda al comportamento osservabile del comando.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary

The attach command's help and scripting documentation describe interactive serial input/output redirection, but the command only prints an endpoint and returns. This report concerns the misleading advertised behavior; it does not assume that completing the unfinished interactive terminal feature is required. Users following the help cannot use the calling terminal as the VM console through this command.

Steps to reproduce

  1. Run utmctl attach --help using the bundled CLI in the runtime below.
  2. For the runtime comparison, start a QEMU ARM64 UEFI VM with one Pseudo-TTY serial device, 768 MiB memory, one CPU, no guest disks, no network interfaces, and no display devices. The observed fixture used UTM's default serial configuration for a script-created VM.
  3. Resolve that VM's UUID with utmctl list, then run utmctl attach <VM-UUID> through a desktop Terminal authorized to control UTM, with stdout and stderr captured.
  4. Observe that the command exits and returns to its caller without redirecting serial input/output. As a control, open the printed PTTY endpoint directly, send ver followed by carriage return, and read the firmware response.

All four steps were executed. The VM was a disposable firmware-only fixture and was stopped and deleted afterward.

Expected behavior

The command help should accurately describe the supported behavior before the user runs it. The current help promises that serial input/output will be redirected to the calling terminal. If interactive attachment remains intentionally unavailable, the help and scripting command table should make the endpoint-discovery behavior and limitation clear.

Actual behavior

The help overview reads:

Redirect the serial input/output to this terminal.

On the running fixture, attach returned exit status 0 with empty stderr and the following stdout. The device suffix is illustrative; the observed live endpoint has been generalized.

WARNING: attach command is not implemented yet!
PTTY: /dev/ttysNNN

The command returned instead of opening an interactive serial session. Direct read/write of the returned endpoint successfully produced UEFI Interactive Shell v2.2, EDK II, and UEFI v2.70, followed by the shell prompt. The serial device itself was usable.

Evidence

  • Expected source: Fresh installed attach --help output above and the official scripting command table, whose attach row describes serial redirection.
  • Failure source: Fresh execution against the running firmware fixture returned the warning and endpoint above. The Attach implementation resolves the VM and serial ports, prints the warning and endpoint, then returns without a terminal session; its command abstract still advertises redirection.
  • Evidence provenance: observed
  • Local verification: reproduced
  • Reproduction completeness: complete

The initial CLI release announcement described printing serial connections, so endpoint discovery appears intentional. This supports correcting the advertised behavior without assuming an interactive implementation is a regression. The closed native control interface proposal also explicitly deferred attach; it did not implement or request correction of the misleading help.

Runtime or environment

  • UTM: 5.0.8, build 128, bundled macOS CLI; latest published stable release at verification.
  • Host: Apple Silicon arm64, macOS 27.0.1, build 26A434.
  • Source: The checked latest release tag v5.0.8 and current default branch resolve to the same revision linked in Evidence. The default-branch source was inspected, not built or executed separately.
  • Guest: QEMU aarch64 UEFI firmware only; no installed guest OS. Configuration readback confirmed the started state, memory, CPU count, and zero disks, NICs, and displays.

Restoration check

Run the same help and command on a running VM with a working PTTY. The advertised behavior and observable command result should agree: endpoint discovery must not promise an interactive console, or an advertised interactive session must actually accept input and display the firmware response through the calling terminal. Preserve the direct endpoint control to distinguish an unavailable serial device from this mismatch.

Triage assessment

  • Impact level: P3
  • Assessment status: supported
  • Impact basis: This is an inaccurate help/documentation description of intentionally unfinished behavior. The observed command still provides endpoint discovery; this report does not require adding a new interactive capability.
  • Workaround status: available
  • Workaround basis: Direct read/write of the printed PTTY successfully exchanged a firmware command and response in this run; the official serial guide documents connecting to that endpoint with a terminal tool.
Lingua principale
Swift
Stelle
35.9k
Fork
1.9k
Merge medio
2g 20h
PR unite (30g)
23

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di utmapp/UTM

Tutte le issue di utmapp/UTM

Issue simili

Altre issue su Swift

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.