KDE 上的 Visual Studio Code 导致 kdialog 分配无限内存,直到 Linux 冻结

问题描述 投票:0回答:3

当尝试打开“另存为”对话框以在 KDE 上的 Visual Studio Code 中保存任何文件时(Ubuntu 24.04,该对话框不会打开,并且一个单独的进程“kdialog”开始使用 100% 的 CPU 并尝试连续分配内存直到满了并且系统完全冻结。

重现步骤(包括清除数据和重新安装 VS Code):

snap remove --purge code
rm -rf ~/.config/Code
rm -rf ~/.vscode
snap install code --classic

打开 VS Code(即使禁用所有扩展并关闭 GPU 加速)。创建一个新文件并尝试保存它。

尝试保存新文件时,VS Code 使用以下参数启动 kdialog 实例:

kdialog --attach=75497476 --title="Save As" --getsavefilename /home/user/textfile "All Files (*.txt)|Plain Text (*.bat *.cmd) [...]"

此命令如果单独运行正确运行,将打开对话框并在标准输出中返回正确的文件路径。

通过尝试将 strace 附加到 kdialog 进程 (

strace -f -p $(pgrep kdialog)
),它显示了对
brk
内核函数的无限调用,表明它确实在不断尝试扩展专用于该进程的内存。

进一步调查将 gdb 附加到 kdialog 进程,看起来该进程陷入了内部的无限循环

KBuildSycoca::recreate
。我不太确定“ksycoca”在做什么,但它看起来与
~/.cache/.ksyscoca5*
中的一个文件相关,并且确实有一个
.lock
文件引用具有相同进程 ID (PID) 的
kdialog
。我什至尝试清除这些缓存文件,但当 kdialog 尝试重新启动时它们会被重新创建。

关于如何进一步调查以及这

ksyscoca
如何(以及是否)参与这一切,有什么想法吗?

(kdialog 版本 23.08.5,VS Code 版本 1.94.2 x64)

visual-studio-code memory-leaks kde-plasma kdialog
3个回答
6
投票

这里也一样(kdialog 版本 23.08.5,vscode 版本 1.94.2 x64)

这里提到的解决方法对我有用:https://github.com/microsoft/vscode/issues/231310

文件 > 首选项 > 设置 > 文本编辑器 > 文件 > 简单对话框 > 启用


1
投票

另一个解决方法是更新到 Kubuntu 24.10,它使用 Qt6 而不是 Qt5,Qt5 似乎已修复此问题。不幸的是,Qt5 中还没有针对此问题的向后移植修复。

来源


0
投票

同样的问题在这里。 我不知道下面的观察是否有任何用处。 仅最新安装 Kubuntu 24.04 LTS 后最近两周的更新。

当我想尝试 2 个 python CAD 模块时,我遇到了 kdialog 的问题。 我在活动虚拟环境中安装了 cadquery 和 aspose-cad。 不用说,我没有花太多时间在文档上,只是想运行一些 hello-world 代码。

https://github.com/CadQuery/cadquery

pip install cadquery

https://pypi.org/project/aspose-cad/

pip install aspose-cad

我注意到在安装输出期间安装了很多 Qt 5 的东西,尽管我认为我的系统上有 Qt6。 在这些不成功的安装尝试之后,我无法再从 vscode 中打开文件/文件夹 kdialog。完全重新安装 vscode 并没有改变任何东西,从那以后我只能继续使用

Simple Dialog > Enable
方法。

system:
Operating System: Kubuntu 24.04
KDE Plasma Version: 5.27.11
KDE Frameworks Version: 5.115.0
Qt Version: 5.15.13
Kernel Version: 6.8.0-47-generic (64-bit)
Graphics Platform: X11
Processors: 4 × Intel® Core™ i5-4590 CPU @ 3.30GHz
Memory: 31,3 GiB of RAM
Graphics Processor: Mesa Intel® HD Graphics 4600
Manufacturer: Dell Inc.
Product Name: OptiPlex 7020
System Version: 00

vscode:
Version: 1.94.2
Date: 2024-10-09T16:08:44.566Z
Electron: 30.5.1
ElectronBuildId: 10262041
Chromium: 124.0.6367.243
Node.js: 20.16.0
V8: 12.4.254.20-electron.0
OS: Linux x64 6.8.0-47-generic snap

kdialog 23.08.5
© www.soinside.com 2019 - 2024. All rights reserved.