我使用的是 Fedora 29 + KDE 5.14.5 + KDE Framework 5.59.0 + QT 5.11.3。最近几天,我遇到了很多 kdeinit5 崩溃问题。我不知道是什么原因导致崩溃,也没有导致失败的特定操作。在日志中我得到了这样的信息:
localhost.localdomain plasmashell[2011]: QQuickItem::stackAfter: Cannot stack StatusNotifierItem_QMLTYPE_372(0x557f6d64dc00, parent=0x557f688f>
aug 27 15:43:35 localhost.localdomain plasmashell[2011]: file:///usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/NotificationDelegate.qml:>
aug 27 15:43:35 localhost.localdomain systemd-coredump[5172]: Process 3301 (file.so) of user 1000 dumped core.
Stack trace of thread 3301:
#0 0x00007f8e509828b5 _ZN6QMutex4lockEv (libQt5Core.so.5)
#1 0x00007f8e50b76186 _ZN10QTextCodec14codecForLocaleEv (libQt5Core.so.5)
#2 0x00007f8e50a00569 _ZN7QString20fromLocal8Bit_helperEPKci (libQt5Core.so.5)
#3 0x00007f8e50ad67b8 _ZN14QStandardPaths16writableLocationENS_16StandardLocationE (libQt5Co>
#4 0x00007f8e51c35881 n/a (libKF5Crash.so.5)
#5 0x00007f8e51c36362 n/a (libKF5Crash.so.5)
#6 0x00007f8e51c36815 _ZN6KCrash19defaultCrashHandlerEi (libKF5Crash.so.5)
#7 0x00007f8e50406600 .annobin_sigaction.c (libc.so.6)
aug 27 15:43:35 localhost.localdomain systemd-coredump[5173]: Process 3991 (file.so) of user 1000 dumped core.
Stack trace of thread 3991:
#0 0x00007f8e509828b5 _ZN6QMutex4lockEv (libQt5Core.so.5)
#1 0x00007f8e50b76186 _ZN10QTextCodec14codecForLocaleEv (libQt5Core.so.5)
#2 0x00007f8e50a00569 _ZN7QString20fromLocal8Bit_helperEPKci (libQt5Core.so.5)
#3 0x00007f8e50ad67b8 _ZN14QStandardPaths16writableLocationENS_16StandardLocationE (libQt5Co>
#4 0x00007f8e51c35881 n/a (libKF5Crash.so.5)
#5 0x00007f8e51c36362 n/a (libKF5Crash.so.5)
#6 0x00007f8e51c36815 _ZN6KCrash19defaultCrashHandlerEi (libKF5Crash.so.5)
#7 0x00007f8e50406600 .annobin_sigaction.c (libc.so.6)
aug 27 15:43:35 localhost.localdomain audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-cor>
aug 27 15:43:35 localhost.localdomain audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-cor>
aug 27 15:43:36 localhost.localdomain kwin_x11[1996]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 42177, resource id: 123731979, major cod>
aug 27 15:43:37 localhost.localdomain abrt-server[5210]: Deleting problem directory ccpp-2019-08-27-15:43:35.946209-3301 (dup of ccpp-2019-08-26-17:08:51.2832>
aug 27 15:43:37 localhost.localdomain abrt-server[5210]: Lock file '.lock' is locked by process 2388
aug 27 15:43:38 localhost.localdomain abrt-notification[5253]: Process 4388 (kdeinit5) crashed in QMutex::lock()()
aug 27 15:43:40 localhost.localdomain abrt-server[5211]: Deleting problem directory ccpp-2019-08-27-15:43:35.962232-3991 (dup of ccpp-2019-08-26-17:08:51.2832>
aug 27 15:43:40 localhost.localdomain abrt-notification[5298]: Process 4388 (kdeinit5) crashed in QMutex::lock()()
我检查了所有其他有相同问题的 SO 主题,但没有明确的答案。有人能指出导致所有这些崩溃的问题吗?
编辑1 看起来 xsessions-errors 中有相关的行:
AppIconMgr::systemDesktopName log Desktop Name: /usr/share/xsessions/plasma
Error: Send error, 22 Invalid argument
Error: Send error, 22 Invalid argument
Error: Send error, 22 Invalid argument
KCrash: Application 'kdeinit5' crashing...
KCrash: Attempting to start /usr/libexec/drkonqi from kdeinit
CSBConfUI::OnConfStatusChanged UI_CMD_SHARE_READYqrc:/qml/JoinAudio.qml:71: TypeError: Cannot read property of null
qrc:/qml/JoinAudio.qml:72: TypeError: Cannot read property of null
[4424:4424:0827/185838.722928:ERROR:buffer_manager.cc(488)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : glBufferData: <- error from previous GL command
KCrash: Application 'kdeinit5' crashing...
KCrash: Attempting to start /usr/libexec/drkonqi from kdeinit
KCrash: Application 'kdeinit5' crashing...
KCrash: Attempting to start /usr/libexec/drkonqi from kdeinit
KCrash: Application 'kdeinit5' crashing...
KCrash: Attempting to start /usr/libexec/drkonqi from kdeinit
KCrash: Application 'kdeinit5' crashing...
KCrash: Attempting to start /usr/libexec/drkonqi from kdeinit
qrc:/qml/AttendeeItemDelegate.qml:26: TypeError: Cannot read property 'itemType' of undefined
qrc:/qml/AttendeeItemDelegate.qml:360: TypeError: Cannot read property 'isItemHovered' of undefined
qrc:/qml/AttendeeItemDelegate.qml:26: TypeError: Cannot read property 'itemType' of undefined
qrc:/qml/AttendeeItemDelegate.qml:360: TypeError: Cannot read property 'isItemHovered' of undefined
qrc:/qml/AttendeeItemDelegate.qml:26: TypeError: Cannot read property 'itemType' of undefined
qrc:/qml/AttendeeItemDelegate.qml:360: TypeError: Cannot read property 'isItemHovered' of undefined
qrc:/qml/AttendeeItemDelegate.qml:26: TypeError: Cannot read property 'itemType' of undefined
qrc:/qml/AttendeeItemDelegate.qml:360: TypeError: Cannot read property 'isItemHovered' of undefined
qrc:/qml/AttendeeItemDelegate.qml:26: TypeError: Cannot read property 'itemType' of undefined
qrc:/qml/AttendeeItemDelegate.qml:360: TypeError: Cannot read property 'isItemHovered' of undefined
qrc:/qml/AttendeeItemDelegate.qml:26: TypeError: Cannot read property 'itemType' of undefined
qrc:/qml/AttendeeItemDelegate.qml:360: TypeError: Cannot read property 'isItemHovered' of undefined
qrc:/qml/AttendeeItemDelegate.qml:26: TypeError: Cannot read property 'itemType' of undefined
qrc:/qml/AttendeeItemDelegate.qml:360: TypeError: Cannot read property 'isItemHovered' of undefined
答案1
我在全新安装的 Fedora 29 上遇到了完全相同的问题,并感到困惑。正如 @snegovik 指出的那样,关闭 dolphin 时肯定会发生崩溃,这让我抓狂不已。根据 snegovik 的回答,解决方案是降级,但存储库已经删除了较旧的kf5-*
软件包。
不过,希望还是有的。Fedora 显然在 Koji 构建系统上有一些较旧的软件包,并且 kf5-*-5.58.0-1 软件包可用。
https://koji.fedoraproject.org/koji/buildinfo?buildID=1268224
软件包数量相当多,所以我从网络源中提取了 URL。这是我运行的命令:
sudo dnf install \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/noarch/kf5-kio-doc-5.58.0-1.fc29.noarch.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-core-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-core-libs-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-devel-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-file-widgets-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-gui-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-ntlm-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-widgets-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-widgets-libs-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-core-debuginfo-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-debuginfo-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-debugsource-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-devel-debuginfo-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-gui-debuginfo-5.58.0-1.fc29.x86_64.rpm \
https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/x86_64/kf5-kio-ntlm-debuginfo-5.58.0-1.fc29.x86_64.rpm
最后一步是保留软件包以防止意外升级回 5.59.0-1。我将其添加到/etc/dnf/dnf.conf
:
excludepkgs=kf5-kio kf5-*-*
请注意,我使用了kf5-*-*
而不是kf5-*
因为还有一些其他类似的包kf5-kdbusaddons.x86_64
如果升级的话看起来不错。
答案2
抱歉 - 暂时无法评论 - 不得不使用答案部分。在 Fedora 29 上使用 KDE5 时遇到同样的问题。关闭 dolphin 后,通常会立即出现此错误:
很抱歉,kdeinit5 意外关闭。
您无法报告此错误,因为 kdeinit5 没有提供错误报告地址。
这是 kf5-* 更新的结果。检查了另一个使用 kf5-* 版本 5.58.0-1 的系统,结果
dnf update -x kf5-*
结果 - 无错误。将 kf5-* 版本 5.58.0-1 更新至 kf5-* 版本 5.59.0-1:
dnf update
结果 - 错误。
做了更多挖掘:
- 已从系统中删除 NVIDIA 驱动程序 - 仅在 nouveau 上运行。错误仍然存在。
- 使用另一个带有 AMD RX580 视频的系统 - 结果相同:错误仍然存在。
- 是否:
dnf reinstall kf5-*-
结果相同:错误仍然存在。
结论 - 此错误与任何特定视频驱动程序无关。此错误仅与最新的 kf5-* 版本 5.59.0-1 更新有关。遗憾的是,您无法降级到 kf5-* 版本 5.58.0-1 - 因为它已从服务器中删除。
编辑1 2019 年 9 月 3 日:
周末我做了更多调查。从 5.59.0 开始,所有最新版本的 kf5-kio 都有这个错误。还检查了 5.60.0 和 5.61.0
感谢 rayting 提供旧版(kf5-5.58.0) 来源——它救了我!
这是我做的:我认为这会破坏 Fedora 的所有保修(如果您有的话),但这对我来说是可行的。如果它破坏了您的系统,请不要责怪我 :-)
- 列出系统上安装的所有应用程序组 - 包括隐藏的应用程序组(以 root 身份或使用 sudo(如果已配置)):
dnf group list --hidden
sudo dnf group list --hidden
- 安装所有必需的开发包(可能需要一段时间)并确保一切都是最新的:警告:可能会为您的系统增加大量的使用空间 - 确保您有足够的存储空间。
dnf -y group install "C Development Tools and Libraries" "KDE Software Development" "KDE Frameworks 5 Software Development" "RPM Development Tools"
sudo dnf -y group install "C Development Tools and Libraries" "KDE Software Development" "KDE Frameworks 5 Software Development" "RPM Development Tools"
dnf update
sudo dnf update
- 以用户身份打开 konsole 并下载 kf5-kio-5.58.0-1 的源:
wget https://kojipkgs.fedoraproject.org//packages/kf5-kio/5.58.0/1.fc29/src/kf5-kio-5.58.0-1.fc29.src.rpm
- 安装源 rpm:
rpm -Uvh kf5-kio-5.58.0-1.fc29.src.rpm
- 更改为已创建的 SOURCES 目录:
cd ~/rpmbuild/SOURCES
- 提取 kf5-kio 的档案:
tar -xf kio-5.58.0.tar.xz
- 将解压的目录移动到 kio-5.59.0 (这是作弊!:-)
mv kio-5.58.0 kio-5.59.0
- 压缩此目录:
tar -cJf kio-5.59.0.tar.xz kio-5.59.0
- 修改 .spec 文件以显示“NEW”版本和发布:
sed -i -e "s/Version: 5.58.0/Version: 5.59.0/g" ~/rpmbuild/SPECS/kf5-kio.spec
sed -i -e "s/Release: 1%{?dist}/Release: 33%{?dist}/g" ~/rpmbuild/SPECS/kf5-kio.spec
- 建立一个新的 srcrpm:
rpmbuild --bs ~/rpmbuild/SPECS/kf5-kio.spec
- 重建 src rpm(根据您的硬件,将需要 5-10 分钟):
rpmbuild --rebuild ~/rpmbuild/SRPMS/kf5-kio-5.59.0-33.fc29.src.rpm
- 它还将构建“debugsource”和“debuginfo”包(有人可以指导我如何在 Fedora 上永久禁用它吗?):删除这些并更新你的 kf5:
rm -f ~/rpmbuild/RPMS/*/*debug*
ls -las ~/rpmbuild/RPMS/*/*
su
dnf update %(user_home)/rpmbuild/RPMS/*/*
- 之后关闭并重新打开 Dolphin - 然后尝试再次关闭它 - 您应该不会再遇到崩溃。
结论:版本 5.58.0 和 5.59.0 之间的 kf5-kio 软件包发生了变化,该变化在版本 5.60.0 和 5.61.0 中仍然存在,这导致 kdeinit5 在 Dolphin 关闭时崩溃。只有修复此错误(在 KDE 部分)并将该修复程序反向移植到 kf5 版本 5.59.0、5.60.0 和 5.61.0 后,崩溃才会不再发生。
答案3
此错误似乎已由这次提交到 KDE:
总结:所有 QTextCodec 都会在退出时被 QCoreGlobalData 删除,所以它们必须分配在堆上。在 Qt 5.12 之前,甚至不允许删除它们。
错误:408797
Fedora 29 的更新已提交,FEDORA-2019-01dfc11f76
通过点击上面的链接,然后进行构建,可以获得待处理更新的 kf5-kio-5.90.0-2 包的 koji 构建:https://koji.fedoraproject.org/koji/buildinfo?buildID=1392448
从那里可以下载 RPM 并安装它们。我发现只需kf5-kio-core-5.59.0-2.fc29.x86_64.rpm
安装 即可修复此问题,因为它包含file.so
有错误的库。它可以通过 单独安装,无需构建中的其他 RPM sudo rpm -Uvh kf5-kio-core-5.59.0-2.fc29.x86_64.rpm --nodeps
。
强制安装并忽略此类依赖项通常不是一个好主意,但此处的 -2 版本仅修复了 -1 版本中的此错误,因此它可能是安全的,到目前为止我还没有发现任何问题。而且 Fedora 29 迟早应该会发布更新,届时 dnf 将更新所有内容。
答案4
另外两个答案精确地解释了问题是什么,以及如何在等待修复的同时构建旧版本。我还发现详细线程在这里其中一位用户建议设置KDE_DEBUG=1
环境变量。
我选择了那条路线,因为它很快,但忘了回复,所以为了团结,如果你在 shell 启动登录文件中添加类似这样的内容(例如,~/.bash_profile
不是~/.bashrc
):
export KDE_DEBUG=1
那么这将阻止您获得此信息,但也会阻止任何其他崩溃报告。这对我的设置唯一明显的影响是它KDE_DEBUG
似乎无法在高 DPI 屏幕上很好地播放,所以我使用系统设置来放大显示器。
我确信这样做会带来其他后果,但由于我在编辑时~/.bash_profile
意识到我从来没有在这里使用过这个“技巧”,所以我想我会回复...