Skip to content

[Bug] 应用启动后CPU占用100%导致系统无响应 #1

Description

@superkonka

问题描述

MacAssistant 应用启动后,CPU 占用率立即飙升至 100%,导致系统严重卡顿,鼠标持续显示 loading 状态,应用无法正常交互。

重现步骤

  1. 从 main 分支构建 Release 版本
  2. 安装应用到 /Applications
  3. 启动应用
  4. 观察 CPU 占用率

预期行为: 应用正常启动,CPU 占用率在正常范围 (< 10%)
实际行为: CPU 占用率 95-100%,系统响应缓慢

环境信息

  • macOS 版本: macOS 15.7.2 (Build 24G325)
  • 设备型号: Apple Silicon (arm64)
  • 应用版本: 1.0 (main 分支最新)
  • 构建配置: Release

问题分析

通过 sampleps aux 命令观察到:

PID   %CPU  %MEM
16021 95.9  2.7  MacAssistant

堆栈跟踪显示问题可能与以下组件相关:

  • OpenClawGatewayRuntimeManager 的健康检查循环
  • AgentStore 的初始化逻辑
  • AutoAgent 的定时器设置

可疑代码位置:

  1. OpenClawGatewayRuntimeManager.swift:777 - while Date() < deadline 循环
  2. OpenClawGatewayRuntimeManager.swift:694 - waitUntilHealthy() 中的循环
  3. AgentStore.init() - 可能触发了循环依赖

可能的根本原因

  1. 初始化死锁: SettingsManager / AgentStore / OpenClawGatewayRuntimeManager 之间可能存在循环依赖
  2. 定时器未正确设置: 定时器间隔可能设置为0或触发频率过高
  3. Gateway 启动失败重试: Gateway 启动失败后无限重试

日志片段

[2026-03-14 16:07:56] [INFO] OpenClawGatewayRuntimeManager.swift:689 - 已启动 OpenClaw gateway wrapper 进程,PID: 13591
[2026-03-14 16:07:56] [DEBUG] OpenClawGatewayRuntimeManager.swift:121 - 生成 OpenClaw wrapper 配置
...

日志显示 Gateway 进程已启动,但随后出现高 CPU 占用。

建议修复方向

  1. waitUntilHealthy() 中添加最大重试次数限制
  2. 检查 AgentStore.init() 中的 refreshAvailability() 是否触发循环
  3. 检查 SettingsManager 的 @Published 属性是否触发级联更新
  4. 添加初始化超时保护

相关文件

  • MacAssistant/Services/OpenClawGatewayRuntimeManager.swift
  • MacAssistant/Services/AgentStore.swift
  • MacAssistant/AutoAgent/AutoAgent.swift

严重性

🔴 Critical - 应用完全无法使用

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions