Files
karuo-ai/运营中枢/参考资料/Cursor闪退排查_20260304.md

8.4 KiB
Raw Permalink Blame History

Cursor 自动关闭问题 · 日志分析与处理记录

日期2026-03-042026-03-05 补充弹窗与操作说明)
现象Cursor 经常莫名自动关闭(俗称「咳嗽自动关闭」),随后弹出 「The window is not responding」 弹窗。
原则:不关闭硬件加速,保留视频/剪辑等所需能力,从根因入手。


零、弹窗「The window is not responding」出现时怎么选

当出现系统弹窗 「The window is not responding」(窗口没有响应)时:

选项 建议
Reopen重新打开 推荐。先勾选 「Don't restore editors」(不恢复编辑器),再点 Reopen可避免恢复可能已损坏的编辑器状态减少再次卡死。
Close关闭 若不需要保留当前窗口,可直接关闭。
Keep Waiting继续等待 仅当你在等某次操作完成时可选;若已卡很久,建议选 Reopen 并勾选 Don't restore editors。

该弹窗与第一节中的「窗口无响应」「渲染进程崩溃」属同一类问题,根因与缓解方式见下文。


一、日志结论与根因

  • 日志路径~/Library/Application Support/Cursor/logs/(按会话分目录,如 20260304T190511

  • 直接表现

    1. 渲染进程崩溃code 5CodeWindow: renderer process gone (reason: crashed, code: 5),随后主进程未捕获异常 Render frame was disposed before WebFrameMain could be accessed,导致整个应用退出。
    2. Agent 分析 SQLite 报错[AgentAnalyticsOperationsMainService] Error ... SQLITE_ERROR: cannot start a transaction within a transaction(嵌套事务),在「存储 AI code hashes / marking commits as scored」时反复出现可能加剧不稳定。
    3. 窗口无响应CodeWindow: detected unresponsive 后有时恢复,有时被关掉。
    4. ptyHost 心跳超时No ptyHost heartbeat after 6 seconds,终端相关进程偶发无响应。
  • 根因(社区与日志综合)

    • code 5 在 macOS 上多与 V8/JS 内存OOM、GC 压力、以及 macOS mach port 通知失败 有关,不一定与 GPU 驱动有关;硬件加速已保留,不通过关闭它来规避。
    • AgentAnalyticsOperationsMainService 的嵌套事务是 Cursor 端 bug需等官方修复或通过清理该服务数据缓解。

二、已做处理(不限制功能)

  1. 保持硬件加速开启

    • ~/.cursor/argv.json 启用 disable-hardware-acceleration,视频/剪辑相关能力不受影响。
  2. 本机已有设置

    • cursor.general.enableCodebaseIndexing": false 已关闭,减轻后台索引压力。

三、今日3/4日志复检结论

  • 会话数3 月 4 日共有 11 个 Cursor 日志会话12:3821:58说明今日多次重启/自动关闭。
  • 重复出现的错误CodeWindow: detected unresponsiveUnresponsiveSampleError(窗口无响应后可能被关掉);AgentAnalyticsOperationsMainServiceSQLITE_ERROR: cannot start a transaction within a transaction 在多个会话中反复出现Extension host 多次正常退出code 0可能伴随窗口重载。
  • 结论:根因与文档第一节一致,无新类型;缓解手段仍为减轻内存压力 + 清理缓存 + 等官方修复。

四、建议操作(不关功能、从根因缓解)

  • 减轻内存压力:少开不需要的窗口/工作区、关掉不用的标签页;大项目可考虑单独开一个 Cursor 窗口,避免单进程负载过大。当前若打开了多个工作区根(如 个人、卡若AI、聊天记录、开发、婼瑄 等),文件监视与扩展会加重负担,可尝试只保留当前要用的 12 个文件夹再打开 Cursor。
  • 清理缓存(推荐)完全退出 CursorCmd+Q在终端执行以下任一方式,再重新打开 Cursor可减轻 OOM/旧缓存导致的崩溃:
    • 方式一(一键脚本)bash "/Users/karuo/Documents/个人/卡若AI/运营中枢/参考资料/scripts/clear_cursor_cache.sh"
      脚本会检测 Cursor 是否在运行:若在运行会提示先退出再执行;若已退出则自动清理 GPUCache 与 Cache。
    • 方式二(直接命令)
    rm -rf ~/Library/Application\ Support/Cursor/GPUCache ~/Library/Application\ Support/Cursor/Cache
    
    若 Cursor 正在运行,请先 Cmd+Q 完全退出再执行。
  • 向 Cursor 官方反馈:把闪退时间段的 main.log(含 code 5、Render frame disposed、AgentAnalytics SQLITE_ERROR提交到 Cursor Forum 或官方支持,便于他们修 code 5 与 SQLite 嵌套事务。
  • 保持 Cursor 更新:当前 2.6.11,后续版本可能修复上述问题。

若官方或社区后续提供「增加 JS 堆大小」等 argv 支持,再在 argv.json 中按文档配置,无需关闭硬件加速。


五、日志位置速查

内容 路径
主进程日志 ~/Library/Application Support/Cursor/logs/<会话目录>/main.log
窗口日志 同上目录下 window1/window2/
启动参数 ~/.cursor/argv.json

六、本次3/5全面检查结论

  • 弹窗对应关系:「咳嗽自动关闭」后出现的 「The window is not responding」 与日志中的 CodeWindow: detected unresponsive 一致,属同一类问题;按「零、弹窗出现时怎么选」操作即可。
  • 本机状态Codebase Indexing 已关、硬件加速保留;workspaceStorage 约 2.7G、CachedData 约 413M定期清理 GPUCache + Cache 有助于缓解。
  • 已做:① 在文档中补充弹窗操作说明与「Don't restore editors」建议② 新增一键清理脚本(见四、方式一),便于退出 Cursor 后执行。
  • 你可立即做的下次弹窗时勾选「Don't restore editors」再点 Reopen在方便时 Cmd+Q 退出 Cursor执行上述清理脚本或命令后重开。

七、3/12 深度修复(终极解决 code 5 反复崩溃)

诊断数据

指标 数值 严重程度
当日崩溃次数 3 次4 个会话) 🔴 严重
SQLite 嵌套事务错误 99 次/天 🔴 严重
state.vscdb 大小 15GB正常 <100MB 🔴 根因
state.vscdb.backup 14GB 🔴 浪费空间
workspaceStorage 2.8GB / 110 条目78 条过期) 🟡
CachedData 583MB 🟡
日志 503MB 🟡
JS 堆上限 未设置(默认 ~1.5GB 🟡
同窗口工作区 7 个根目录 🟡 加重负担

根因定位

state.vscdbCursor 全局状态数据库)膨胀到 15GB 是崩溃的终极元凶。

  • cursorDiskKV 表积累了 103 万行 / 13.7GB 数据(正常应 <50MB
  • 该数据库大到连查询都报 database or disk is full
  • 每次 Cursor 读写此库都极度吃力引发V8 OOM → renderer crash code 5 → 窗口无响应 → Reopen 弹窗
  • AgentAnalytics 的 SQLite 嵌套事务错误也与此膨胀数据库有关

已执行修复

# 修复项 效果
1 argv.json--max-old-space-size=8192 V8 堆上限从 ~1.5GB → 8GB防 OOM
2 清理 78 个过期 workspaceStorage 释放 1084MB
3 创建深度修复脚本 cursor_deep_fix.sh 一键重置 state.vscdb + 全面清理

待用户执行(需关闭 Cursor

Cmd+Q 退出 Cursor → 终端执行:

bash "/Users/karuo/Documents/个人/卡若AI/运营中枢/参考资料/scripts/cursor_deep_fix.sh"

此脚本会:

  1. 将 15GB 的 state.vscdb 移到废纸篓备份Cursor 重启自动重建干净数据库)
  2. 清理 GPUCache / Cache / CachedData
  3. 清理 >7 天旧日志 + >30 天过期工作区
  4. 清理 Crash Reports

预计释放 ~30GB15GB state.vscdb + 14GB backup + 583MB CachedData + 其余缓存)。

脚本位置

脚本 路径 用途
深度修复(推荐) 运营中枢/参考资料/scripts/cursor_deep_fix.sh 重置膨胀数据库 + 全面清理
轻量清理 运营中枢/参考资料/scripts/clear_cursor_cache.sh 仅清 GPUCache/Cache/CachedData

预防措施

  • argv.json 已设 --max-old-space-size=8192(重启生效),防止 V8 堆溢出
  • 建议每 2 周执行一次轻量清理脚本;若出现崩溃则执行深度修复脚本
  • 尽量减少同窗口工作区数量(当前 7 个,建议控制在 3 个以内)