ci(apple): characterize bounded xcrun stalls in iOS preflight and fold-helper gate
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- ios, typescript
- 領域
- ci-cd, mobile-dev, testing-qa
調査の方向性
Start with packages/platform-apple/src/readiness/runtime.ts and its LIST_TIMEOUT_MS path for simctl device inventory, then inspect packages/platform-apple/src/foldable/fold-helper-cache.test.ts and its FOLD_HELPER_BUILD_TIMEOUT_MS gate. Add focused fake-host coverage for a recoverable first timeout and a persistent timeout, preserving the prepare budget and typed failure. Done includes a macOS gate measurement or failing-job link and a live iOS PR run through preflight.
索引モデルが issue の本文から書いたものです。
説明
Purpose
An Apple host stall can fail smoke before the test under review starts. Keep the two xcrun paths distinct so a cold simulator inventory failure is not reported as an XCTest assertion or hidden by a test retry.
Evidence and scope
- iOS PR run 36030060382, job 107736587593 failed in Preflight iOS runner through public CLI. The typed error was
COMMAND_FAILED: xcrun timed out after 15000ms, withargs: ["simctl", "list", "devices", "-j"], empty stdout/stderr, andtimeoutMs: 15000. The fixture E2E step never ran. The 15 s budget isLIST_TIMEOUT_MSinpackages/platform-apple/src/readiness/runtime.ts; this is distinct from the cold toolchain version probes closed by #2422. - The macOS fold-helper -Werror gate invokes
xcrunwithFOLD_HELPER_BUILD_TIMEOUT_MS = 30000inpackages/platform-apple/src/foldable/fold-helper-cache.test.ts. This is a separate compile path to audit. I have not established a recent failure of this gate from the currently visible macOS runs, so its budget should be changed only if a captured duration or timeout warrants it.
Required behavior
- Attribute a preflight failure to the exact
simctloperation, its elapsed time, remaining prepare deadline, and whether a retry could join/reuse a warmed result. A timeout must stay bounded and typed; no generic XCTest or E2E retry is the fix. - Reproduce or characterize the 15 s inventory stall on a cold/contended host and choose a bounded recovery using the remaining prepare budget. A warm second call may be tried only when the first typed timeout and deadline allow it. Verify the simulator is still the scoped target and that a persistent hang still fails promptly.
- Measure the fold-helper warning gate's cold and warm
xcrunduration separately. If it reaches its 30 s budget, file the concrete failing run here and fix that gate at its own compile seam while retaining-Werror; otherwise close that audit item without changing the timeout.
Completion
- A focused fake-host test plants a first inventory timeout followed by a valid scoped result, plus a persistent timeout, and proves both outcomes and total budget.
- A macOS gate measurement or failing job link settles the fold-helper audit.
- A live iOS PR run gets through preflight on the exact fixing head. Record runner queue and execution time separately.
Related: #2422 (closed toolchain identity probes), #2491 (rotating iOS smoke failures), #2879 (fold request envelope; a different budget).
- 主要言語
- TypeScript
- スター
- 4.7k
- フォーク
- 304
- 平均マージ
- 11時間 29分
- マージ済み PR(30日)
- 514
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
callstack/agent-device のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
callstack/agent-device#1869 ·
-
needs-triage
難易度 5/5 1週間以上 初心者へのやさしさ 32/100
callstack/agent-device#2948 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
callstack/agent-device#2946 ·
-
bug ready-for-agent
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
callstack/agent-device#2935 ·
-
needs-triage
難易度 5/5 1週間以上 初心者へのやさしさ 38/100
callstack/agent-device#2906 ·
callstack/agent-device の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
bcgov/bc-wallet-mobile#4761 · コメント 1 件 ·
-
external-issue to-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
area-deployment area-integrations triage:bot-seen
難易度 2/5 半日 初心者へのやさしさ 86/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
refactor
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100