xde-desktop-portal因读取NULL VMA触发SIGSEGV崩溃,导致Inkscape与Krita异常(Ubuntu 18.04.6)
看起来你遇到的核心问题是xde-desktop-portal服务崩溃(SIGSEGV,读取NULL内存),这直接导致Freedesktop文档门户无法正常启动,进而引发Inkscape启动缓慢、打不开文件甚至崩溃,以及Krita启动延迟的问题。我来给你梳理几个更深入的排查和修复方向:
一、重置文档门户缓存,修复路径映射错误
文档门户会缓存文件权限和路径映射,损坏的缓存大概率是Inkscape报错“文件不存在”的元凶(明明文件在/mnt下,却被解析成/home路径)。执行以下步骤清理并重启服务:
# 停止相关门户服务 systemctl --user stop xdg-desktop-portal xdg-desktop-portal-xde # 删除文档门户缓存目录 rm -rf ~/.cache/documents ~/.local/share/flatpak/exports/share/documents # 重新启动服务 systemctl --user start xdg-desktop-portal xdg-desktop-portal-xde
完成后再尝试打开Inkscape的目标文件,看是否还会出现路径错误和崩溃。
二、抓取崩溃日志,定位具体问题根源
要精准找到崩溃原因,得查看xde-desktop-portal崩溃时的详细日志。打开终端运行以下命令实时监控服务日志:
journalctl --user -u xdg-desktop-portal-xde -f
保持这个终端窗口打开,然后去触发Inkscape的崩溃操作(比如从GUI打开文件)。日志里会显示崩溃的堆栈信息,比如是哪个函数、哪个库导致的NULL指针引用——这能帮你判断是xde-desktop-portal本身的bug,还是依赖库出了问题。
三、临时切换到GTK门户后端(应急解决方案)
如果确认是xde-desktop-portal的问题,你可以暂时切换到更稳定的GTK版门户后端,先让软件恢复正常使用:
# 停止xde版本的门户服务 systemctl --user stop xdg-desktop-portal-xde # 启动GTK版门户服务 systemctl --user start xdg-desktop-portal-gtk
之后再启动Inkscape和Krita,应该能解决启动慢和崩溃的问题,同时验证问题是否确实出自xde门户。
四、检查依赖库版本兼容性
Ubuntu 18.04是比较老的版本,可能存在依赖库版本不匹配的情况。先查看xde-desktop-portal依赖的核心库:
ldd $(which xdg-desktop-portal-xde) | grep -E "(gtk|glib|gio)"
如果发现某个库的版本异常(比如被意外降级/升级),尝试重新安装对应的库包:
sudo apt install --reinstall libglib2.0-0 libgtk-3-0 libgio-2.0-0
五、检查/mnt挂载目录的权限
你要打开的文件在/mnt子目录下,文档门户需要正常访问该目录的权限。先查看挂载选项:
mount | grep /mnt
如果挂载时用了noexec、nodev这类严格限制的选项,可能导致门户无法读取文件。可以尝试重新挂载去掉这些限制,或者给当前用户赋予目录权限:
# 替换成你的实际子目录路径 sudo chown -R $USER:$USER /mnt/your-subdirectory sudo chmod -R 755 /mnt/your-subdirectory
额外建议
考虑到Ubuntu 18.04在2023年5月已经结束官方支持,系统内的很多软件包(包括xde-desktop-portal)都不会再收到bug修复。如果上述方法都无法彻底解决问题,升级到Ubuntu 22.04 LTS这类新版本,应该能从根本上解决这类兼容性和旧bug问题。
备注:内容来源于stack exchange,提问作者endelos

