正常使用中,在打字时切换输入法,桌面突然整体假死:界面对键鼠操作不再响应, 无法通过常规操作恢复,只能 Ctrl+Alt+F2 切到 tty2 用命令行处理。
Ctrl+Alt+F2
在 tty2 下对各桌面组件做分层 D-Bus 探测(每项超时 3s),结果:
同时对应 systemd 用户单元状态均为 active:
active
dde-shell@DDE.service
dde-shell-plugin@org.deepin.ds.desktop.service
dde-lock.service
即进程存活但 D-Bus 接口不应答,符合主线程阻塞 / 死锁的特征, 不是崩溃退出,也不是 X 或窗口管理器的问题。
按影响面从小到大逐级重启(脚本自动执行,每级后重新探测):
systemctl --user restart dde-shell@DDE.service
systemctl --user restart dde-shell-plugin@org.deepin.ds.desktop.service
systemctl --user restart dde-lock.service
kwin_x11 --replace
systemctl --user restart dde-session-daemon
执行到第 5 级后所有探测项恢复 OK,界面正常,未注销会话。
切换输入法时会触发输入法 OSD 弹窗,而本次故障点恰好是 OSD 层 + 通知中心 两个组件同时无应答,怀疑:
gdb thread apply all bt
没遇到过
我用的rime+万象的输入法方案,遇到过短期内在dock内多次点击执行万象的重新部署功能后,dock无法使用的问题,dock栏内所有的按钮都无法点击,但是已经打开的GUI软件是可以正常使用的。最后都是重启解决的。不知道是不是同一个原因
Featured Collection
Popular Ranking
Popular Events
【deepin 25 rolling】切换输入法后桌面假死:OSD 与通知中心 D-Bus 无应答
一、环境
二、现象
正常使用中,在打字时切换输入法,桌面突然整体假死:界面对键鼠操作不再响应,
无法通过常规操作恢复,只能
Ctrl+Alt+F2切到 tty2 用命令行处理。三、排查过程
在 tty2 下对各桌面组件做分层 D-Bus 探测(每项超时 3s),结果:
同时对应 systemd 用户单元状态均为
active:dde-shell@DDE.service→ activedde-shell-plugin@org.deepin.ds.desktop.service→ activedde-lock.service→ active即进程存活但 D-Bus 接口不应答,符合主线程阻塞 / 死锁的特征,
不是崩溃退出,也不是 X 或窗口管理器的问题。
四、恢复方式
按影响面从小到大逐级重启(脚本自动执行,每级后重新探测):
systemctl --user restart dde-shell@DDE.servicesystemctl --user restart dde-shell-plugin@org.deepin.ds.desktop.servicesystemctl --user restart dde-lock.servicekwin_x11 --replace(窗口不关)systemctl --user restart dde-session-daemon执行到第 5 级后所有探测项恢复 OK,界面正常,未注销会话。
五、初步推测
切换输入法时会触发输入法 OSD 弹窗,而本次故障点恰好是 OSD 层 + 通知中心
两个组件同时无应答,怀疑:
或 OSD 动画/资源加载有关),进而拖死同一进程内的通知中心接口。
六、附注
gdb thread apply all bt未能取到有效堆栈(恢复后抓的是健康进程,无诊断意义),暂无死锁现场栈,如有需要可在复现时补充。
七、附件