iOS Conformance Differential: intermittent clearState terminate timeout and Maestro driver startup timeout

未关闭
#4,022 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
github-actions, ios, typescript

调研方向

After #4016 merges, inspect the uploaded conformance-differential-ios-diagnostics from the next failing run. Read the subprocess trace for the open command with timeoutMs: 15000 to distinguish a slow xcrun call from one that hangs after termination, and check .maestro/tests for the driver timeout. The issue is done when the intermittent failures are explained by that evidence; do not increase the timeout before then.

由索引模型根据 Issue 内容生成。

描述

backlog bug

Split out of #3944. These two failures predate the 10-17 streak. They come and go and turn some nights red after the persistent failure is fixed (#3993).

1. agent-device launchApp clearState times out terminating the app

  • When: failed with "xcrun timed out after 15000ms" on 09-18, 09-24, 09-27, 10-07, 10-11, 10-17 and 10-27.
  • Which run: every time, it was the agent-device run that follows a Maestro run of the same flow. That was percent-swipe on 10-11 and 10-17, and settle-after-tap on 10-27.
  • Why the terminate is the culprit: launchApp makes two xcrun calls with a 15 s limit. Only the terminate (terminateIosSimulatorApp, IOS_SIMULATOR_TERMINATE_TIMEOUT_MS, packages/platform-apple/src/core/app-launch.ts) reaches the caller. A timeout in post-open target discovery is caught and turned into probe-failed.
  • Normal timing: on a green run (dispatch 40684697766) the terminate took at most 0.7 s, and discovery took up to 11.3 s.

2. Maestro "iOS driver not ready in time"

  • When: failed on 09-12, 09-22, 09-24, 09-27, 10-06, 10-07 and 10-27.
  • Four of those nights also had failure 1.

Possible cause (unproven)

The host or CoreSimulator may stall. Or agent-device's runner, which stays alive across scenarios, may interfere when Maestro starts its own driver.

Next step

Once #4016 merges, the job keeps a subprocess trace and uploads conformance-differential-ios-diagnostics (daemon and session diagnostics, plus Maestro's per-run logs). On the next failing night:

  • Read the trace of the xcrun call with timeoutMs: 15000 under command open. If it exits right after the deadline, it was slow. If it never closes after the kill, it hung.
  • Read .maestro/tests for the driver timeout.

Don't raise the timeout until that evidence exists.

主要语言
TypeScript
星标
5.3k
派生
377
平均合并
13 小时 18 分钟
30 天内合并 PR
653

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

callstack/agent-device 的其他 Issue

查看 callstack/agent-device 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。