bug: surface supervisor startup failures to sandbox commands
まだ誰も着手していません。
評価
調査の方向性
Start by tracing the sandbox create/run command result through supervisor startup and readiness handling, using the reproduced /bin/cat permission failure as the test case. Identify where ContainerExited is produced and where startup diagnostics can be classified and sanitized. Done means the CLI reports a distinct startup failure and a unit or integration test covers entrypoint execution failure without exposing raw logs or credentials.
索引モデルが issue の本文から書いたものです。
説明
User Story
As an OpenShell operator, I want a sandbox command to report a meaningful startup failure so that I can diagnose failed sandbox launches without manually inspecting runtime logs.
Problem Statement
When a supervisor cannot start the workload entrypoint, the sandbox lifecycle is reduced to a generic container exit. For example, a rootless Podman run that fails to execute /bin/cat with Permission denied (os error 13) is reported by the CLI as ContainerExited with exit code 1. The useful error is only present in the supervisor container stderr; the workload log instead records the subsequent control-channel termination.
Impact / Why This Matters
Operators cannot distinguish an entrypoint execution failure from an ordinary workload exit through the OpenShell command result. The current workaround is to preserve failed containers and inspect Podman logs manually, which is runtime-specific, slow, and unsuitable for automated diagnostics.
Acceptance Criteria
- A supervisor failure before sandbox readiness is represented as a distinct sandbox startup failure rather than only
ContainerExited. -
openshell sandbox createorrunexposes a concise, sanitized diagnostic that identifies the failed startup stage and failure class. - The implementation does not propagate arbitrary workload or supervisor log output, credentials, or environment values into lifecycle status.
- The behavior is covered by a unit or integration test for an entrypoint execution failure.
Reproduction Steps
- Configure a rootless Podman gateway with the current restrictive sandbox policy.
- Create a sandbox from Alpine with an explicit executable entrypoint, for example
-- /bin/cat /proc/self/uid_map. - Observe the command fail with a generic container-exited status.
- Inspect the supervisor container logs to find the underlying
Permission denied (os error 13)spawn failure.
Environment
- OpenShell: current main / Alpine-default work
- OS: Fedora tmachine VM
- Runtime: rootless Podman
Logs
Error: process error: boundary process leaf: start process supervisor leaf:
spawn delegated workload process
failed to spawn sandbox entrypoint process '/bin/cat'
Permission denied (os error 13)
Related Work
The Alpine-default work is being tracked in PR #3386. This issue is deliberately scoped to reporting the failure; the policy/entrypoint failure itself can be addressed independently.
- 主要言語
- Rust
- スター
- 8.7k
- フォーク
- 1.3k
- 平均マージ
- 2日 6時間
- マージ済み PR(30日)
- 236
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NVIDIA/OpenShell のほかの issue
-
area:docs
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
-
state:triage-needed
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
area:cli state:validated
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
state:triage-needed
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
-
area:build spike state:review-ready state:stale
難易度 2/5 半日 初心者へのやさしさ 68/100
NVIDIA/OpenShell の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
bug team:backend track:services-maintenance
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
cowprotocol/services#4950 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
gitbutlerapp/gitbutler#15998 · コメント 1 件 ·