Skip to content

Document intentional blocking pager call in base logs #1289

Description

@codeforester

Problem

base_logs.open_log() calls the configured PAGER or EDITOR with subprocess.call() and no timeout. That blocking behavior is intentional for an interactive pager, but the file currently has no comment explaining why this subprocess call is exempt from the Python timeout convention.

Evidence:

  • cli/python/base_logs/engine.py:326 returns subprocess.call([*args, str(path)]).
  • Other production Python subprocess calls now either pass a timeout or wrap command execution through timeout-aware helpers.
  • The logs command would be broken by a normal timeout because less, editors, and similar tools are expected to run until the user exits.

Desired outcome

The intentional no-timeout pager call should be documented in code so future subprocess sweeps distinguish it from accidental timeout omissions.

Scope

  • Add a concise comment immediately before the call explaining that this is an interactive pager/editor path and blocks until the user exits.
  • Keep the existing behavior unchanged.
  • Preserve current tests and command behavior.

Non-goals

  • Adding a timeout to the pager/editor path.
  • Reworking log viewing behavior.

Acceptance criteria

  • open_log() documents why the subprocess call intentionally has no timeout.
  • The comment is specific enough to explain the interactive blocking behavior.
  • Existing base logs tests continue to pass.

Demo impact

None.

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions