Repository navigation
Description
Chat2DB Edition
Chat2DB Local
Chat2DB Version
5.3.8(内部版本 5.3.899,build dc8c6039,2026-09-29 安装)
Deployment
Desktop
Operating System
macOS
Operating System Version
macOS 27.2(26B123),Apple Silicon(MacBookPro18,2)
Database and Version
不涉及具体数据库(任意数据源下均可复现)
Problem Summary
应用切到后台放置一段时间(实测约 1 小时)后,整个窗口变为黑屏;退出并重新打开应用才能恢复。根因是内嵌浏览器(JCEF / Chromium Embedded Framework)的渲染进程在后台期间崩溃,且应用没有自动恢复渲染进程。该问题每天可复现多次。
Steps to Reproduce
- 启动 Chat2DB Local,正常使用(打开数据源、执行 SQL 均可)
- 将应用切到后台(切到其他应用窗口),放置约 30–60 分钟
- 切回 Chat2DB → 窗口内容全黑,无任何 UI 响应
实测每天发生 1–2 次,触发条件稳定(后台放置一段时间)。
Expected Behavior
切回应用后界面正常显示;即使渲染进程意外崩溃,应用也应能检测并自动恢复(重新加载页面),而不是永久黑屏。
Actual Behavior
窗口全黑。排查证据如下:
1. 黑屏现场缺少渲染进程。 正常运行时应有 5 个进程(主进程 + Renderer + GPU + Network + Storage),黑屏后 ps 检查只剩 4 个,唯独缺少 --type=renderer 的 jcef Helper (Renderer) 进程。
2. 系统崩溃报告确认渲染进程崩溃。 ~/Library/Logs/DiagnosticReports/ 下发现多份 jcef Helper (Renderer)-*.ips,以 2026-11-02 为例当天有两份(10:14、11:23),时间点与黑屏完全吻合。关键信息(已脱敏):
app_name: jcef Helper (Renderer)
bundleID: org.jcef.jcef.helper.renderer
parentProc: Chat2DB Local
procRole: Foreground
cpuType: ARM-64
exception: EXC_BREAKPOINT (0x0000000000000001), signal SIGTRAP
崩溃线程: CrRendererMain(渲染器主线程)
termination:namespace SIGNAL, code 5, "Trace/BPT trap: 5"
SIGTRAP + EXC_BREAKPOINT 是 Chromium 内部 CHECK() 断言失败后主动触发的崩溃(不是系统因内存不足杀进程——后者会记录为 JETSAM/SIGKILL)。
3. 多次崩溃调用栈完全一致。 两份 .ips 的崩溃栈在 CEF 二进制内的偏移逐字节相同,说明是同一处确定性断言失败,而非随机内存问题。
4. 时间线吻合"后台一段时间后"。 渲染进程 10:27:50 随应用启动,11:23:26 崩溃——恰好在后台放置约 1 小时后。
Logs
本机 CEF 版本:Chromium Embedded Framework 122.1.9.0(即 Chromium 122,2024 年初的内核)。
崩溃栈(无符号的 CEF dylib,只能给出镜像内偏移;两份报告完全一致):
frame 0-2: Chromium Embedded Framework + 62713092/62713116/62713144
frame 3: Chromium Embedded Framework + 104840924
frame 4-5: Chromium Embedded Framework + 4109944/4109836
faultingThread: 0 (CrRendererMain)
Screenshots or Additional Context
根因分析: 应用内嵌的 CEF 122 内核(2024 年初)运行在 macOS 27.2 上。窗口进入后台时 macOS 会启用 App Nap,Chromium 自身也会暂停合成、节流定时器;这个较老的内核在新系统的后台挂起/恢复路径上命中了断言崩溃。渲染进程死亡后,JCEF 侧没有处理 onRenderProcessTerminated 之类的回调来自动重建/重载,窗口失去绘制来源,表现为永久黑屏,只能重启应用。
建议修复方向:
- 升级捆绑的 JCEF / CEF 内核(当前 122 距今已近三年,新版 Chromium 对新 macOS 的后台挂起/恢复处理有大量修复)
- 作为兜底:监听渲染进程终止事件,自动 reload 页面或提示用户,避免永久黑屏
已尝试 defaults write com.chat2db.local NSAppSleepDisabled -bool YES 禁用 App Nap,观察中。
Impact
Blocks a core workflow
Workaround
A reliable workaround exists
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsInbox
Activity