kdeinit5 在 Fedora 29 上不断失败

kdeinit5 在 Fedora 29 上不断失败

我使用的是 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

结果 - 错误。

做了更多挖掘:

  1. 已从系统中删除 NVIDIA 驱动程序 - 仅在 nouveau 上运行。错误仍然存​​在。
  2. 使用另一个带有 AMD RX580 视频的系统 - 结果相同:错误仍然存​​在。
  3. 是否: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 的所有保修(如果您有的话),但这对我来说是可行的。如果它破坏了您的系统,请不要责怪我 :-)

  1. 列出系统上安装的所有应用程序组 - 包括隐藏的应用程序组(以 root 身份或使用 sudo(如果已配置)):
   dnf group list --hidden
   sudo dnf group list --hidden
  1. 安装所有必需的开发包(可能需要一段时间)并确保一切都是最新的:警告:可能会为您的系统增加大量的使用空间 - 确保您有足够的存储空间。
   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
  1. 以用户身份打开 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
  1. 安装源 rpm:
   rpm -Uvh kf5-kio-5.58.0-1.fc29.src.rpm
  1. 更改为已创建的 SOURCES 目录:
   cd ~/rpmbuild/SOURCES
  1. 提取 kf5-kio 的档案:
   tar -xf kio-5.58.0.tar.xz
  1. 将解压的目录移动到 kio-5.59.0 (这是作弊!:-)
   mv kio-5.58.0 kio-5.59.0
  1. 压缩此目录:
   tar -cJf kio-5.59.0.tar.xz kio-5.59.0
  1. 修改 .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
  1. 建立一个新的 srcrpm:
   rpmbuild --bs ~/rpmbuild/SPECS/kf5-kio.spec
  1. 重建 src rpm(根据您的硬件,将需要 5-10 分钟):
   rpmbuild --rebuild ~/rpmbuild/SRPMS/kf5-kio-5.59.0-33.fc29.src.rpm
  1. 它还将构建“debugsource”和“debuginfo”包(有人可以指导我如何在 Fedora 上永久禁用它吗?):删除这些并更新你的 kf5:
    rm -f ~/rpmbuild/RPMS/*/*debug*
    ls -las ~/rpmbuild/RPMS/*/*
    su
    dnf update %(user_home)/rpmbuild/RPMS/*/* 
  1. 之后关闭并重新打开 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意识到我从来没有在这里使用过这个“技巧”,所以我想我会回复...

相关内容