Skip to content

dde-shell -2.0.12,压测结束后整个桌面无法响应鼠标事件 #13021

@ecjtusbs

Description

@ecjtusbs

SUMMARY | 问题概要

x86物理机, dde-shell 版本为:2.0.12,stress-ng进行内存压力测试后 整个桌面(desktop 任务栏) 无法响应鼠标事件

1) ssh连接到测试机器,启用stress -ng进行内存压力测试,
stress --vm 1 --vm-bytes 300M --vm-hang 0
stress --vm 1 --vm-bytes 3000M --vm-hang 0
按照如上方式不断启动stress-ng命令逐步施加内存压力,缓慢压缩系统内存,但不产生oom,

2) 测试桌面响应性(桌面空白处单击鼠标右键,任务栏空白处单击鼠标右键 , 观察是否能及时弹出弹窗);
同时启动glxgears小齿轮测试工具,方便肉眼观察桌面系统是否发生整体卡顿

3) 随着步骤2)中逐渐施加内存压力, 在桌面空白处单击右键后, 会延时一段时间 才显示出弹框。这点符合预期。

4) 随着步骤2)中逐渐施加内存压力, 极大概率性出现: 桌面空白处单击右键后,等待许久仍无任何弹框。 整个桌面(桌面,任务栏)无法不再响应任何鼠标事件。
此时系统未hung住,表现如下:
a) glxgears小齿轮画面正常刷新。
b) 通过ssh能正常登录系统并执行命令
c) dmesg正常刷新,且无oom日志。

日志:
/usr/bin/dde-shell -p org.deepin.ds.desktop 日志有QWidget::insertAction: Attempt to insert null action 报错,且不再刷新

uos 3041 0.1 1.2 2282052 102640 ? Ssl 14:12 0:42 /usr/bin/dde-shell -p org.deepin.ds.desktop

root@uos-PC:/home/uos# journalctl -f _PID=3041
4月 08 14:41:03 uos-PC dde-shell[3041]: 2026-04-08, 14:41:03.672 [Warning] [schemefactory.h dfmbase::InfoFactory::create 298] url is invalid !!! url = QUrl("")
4月 08 14:41:03 uos-PC dde-shell[3041]: 2026-04-08, 14:41:03.672 [Warning] [dcustomactionbuilder.cpp dfmplugin_menu::DCustomActionBuilder::matchActions 221] create selected FileInfo failed: "" ""
4月 08 14:41:03 uos-PC dde-shell[3041]: 2026-04-08, 14:41:03.675 [Warning] [ ] QWidget::insertAction: Attempt to insert null action
4月 08 14:41:03 uos-PC dde-shell[3041]: 2026-04-08, 14:41:03.675 [Warning] [ ] QWidget::insertAction: Attempt to insert null action
4月 08 14:41:03 uos-PC dde-shell[3041]: check com.deepin.ScreenSaver
4月 08 14:41:03 uos-PC dde-shell[3041]: No valid local files selected for cooperation menu
4月 08 14:41:03 uos-PC dde-shell[3041]: url is invalid !!! url = QUrl("")
4月 08 14:41:03 uos-PC dde-shell[3041]: create selected FileInfo failed: "" ""
4月 08 14:41:03 uos-PC dde-shell[3041]: QWidget::insertAction: Attempt to insert null action
4月 08 14:41:03 uos-PC dde-shell[3041]: QWidget::insertAction: Attempt to insert null action

dde-shell桌面进程stack如下
uos@uos-PC:~$ sudo cat /proc/3041/stack
请输入密码:
验证成功
[<0>] do_poll.constprop.0+0x32f/0x3e0
[<0>] do_sys_poll+0x1e7/0x290
[<0>] __x64_sys_poll+0xbf/0x150
[<0>] x64_sys_call+0x18a8/0x1b60
[<0>] do_syscall_64+0x6b/0x200
[<0>] entry_SYSCALL_64_after_hwframe+0x78/0xe2

SOFTWARE/OS VERSIONS | 软件/系统版本信息

dde-shell-2.0.12 版本

PRE-REQUIREMENT | 预置条件

STEPS TO REPRODUCE | 复现步骤

1) ssh连接到测试机器,启用stress -ng进行内存压力测试,
stress --vm 1 --vm-bytes 300M --vm-hang 0
stress --vm 1 --vm-bytes 3000M --vm-hang 0
按照如上方式不断启动新stress-ng进行 逐步施加内存压力,压缩系统内存到 但不产生oom,
2) 同时测试桌面响应性(桌面空白处单击鼠标右键,任务栏空白处单击鼠标右键 , 观察是否能及时弹出弹窗);
同时启动glxgears小齿轮测试工具,用于肉眼观察桌面系统是否发生整体卡顿

3) 随着步骤2)中逐渐施加内存压力, 单击右键后延时一段时间 才显示出弹框。这点符合预期。

4) 随着步骤2)中逐渐施加内存压力, 极大概率性出现: 桌面空白处单击右键后,等待许久仍无任何弹框。 整个桌面(桌面,任务栏)无法不再响应任何鼠标事件。 即使kill掉stress-ng, 桌面仍然无法响应鼠标事件。
此时系统未hung住,表现如下:
a) glxgears小齿轮画面正常刷新。
b) 通过ssh能正常登录系统并执行命令
c) 全程未产生oom

日志:
/usr/bin/dde-shell -p org.deepin.ds.desktop 日志有QWidget::insertAction: Attempt to insert null action 报错,且不再刷新

uos 3041 0.1 1.2 2282052 102640 ? Ssl 14:12 0:42 /usr/bin/dde-shell -p org.deepin.ds.desktop

root@uos-PC:/home/uos# journalctl -f _PID=3041
4月 08 14:41:03 uos-PC dde-shell[3041]: 2026-04-08, 14:41:03.672 [Warning] [schemefactory.h dfmbase::InfoFactory::create 298] url is invalid !!! url = QUrl("")
4月 08 14:41:03 uos-PC dde-shell[3041]: 2026-04-08, 14:41:03.672 [Warning] [dcustomactionbuilder.cpp dfmplugin_menu::DCustomActionBuilder::matchActions 221] create selected FileInfo failed: "" ""
4月 08 14:41:03 uos-PC dde-shell[3041]: 2026-04-08, 14:41:03.675 [Warning] [ ] QWidget::insertAction: Attempt to insert null action
4月 08 14:41:03 uos-PC dde-shell[3041]: 2026-04-08, 14:41:03.675 [Warning] [ ] QWidget::insertAction: Attempt to insert null action
4月 08 14:41:03 uos-PC dde-shell[3041]: check com.deepin.ScreenSaver
4月 08 14:41:03 uos-PC dde-shell[3041]: No valid local files selected for cooperation menu
4月 08 14:41:03 uos-PC dde-shell[3041]: url is invalid !!! url = QUrl("")
4月 08 14:41:03 uos-PC dde-shell[3041]: create selected FileInfo failed: "" ""
4月 08 14:41:03 uos-PC dde-shell[3041]: QWidget::insertAction: Attempt to insert null action
4月 08 14:41:03 uos-PC dde-shell[3041]: QWidget::insertAction: Attempt to insert null action

dde-shell桌面进程stack始终如下:
uos@uos-PC:~$ sudo cat /proc/3041/stack
请输入密码:
验证成功
[<0>] do_poll.constprop.0+0x32f/0x3e0
[<0>] do_sys_poll+0x1e7/0x290
[<0>] __x64_sys_poll+0xbf/0x150
[<0>] x64_sys_call+0x18a8/0x1b60
[<0>] do_syscall_64+0x6b/0x200
[<0>] entry_SYSCALL_64_after_hwframe+0x78/0xe2

OBSERVED RESULT | 观察到的结果

整个桌面(桌面,任务栏)无法不再响应任何鼠标事件。
此时系统未hung住,表现如下:
a) glxgears小齿轮画面正常刷新。
b) 通过ssh能正常登录系统并执行命令

EXPECTED RESULT | 期望的结果

压力测试后 桌面(桌面,任务栏)系统 能正常响应鼠标事件。

ADDITIONAL INFORMATION | 额外补充

1) 桌面无响应时 , 系统和用户级别的 dbus-daemon服务正常, 通过busctl monitor 能观察到 [鼠标移动] ,[鼠标按下] 以及其它dbus事件。
2) 通过trace-cmd观察到 3041 /usr/bin/dde-shell -p org.deepin.ds.desktop进程能正常被调度执行,
3) 借助AI分析dde-shell 2.0.12源码, 给出的结论为dde-file-manager的bug, 如下所示:

Image Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions