Summary: | Energy consumption statistics panel in kinfocenter 5.13.5 was blank | ||
---|---|---|---|
Product: | [Applications] kinfocenter | Reporter: | Matt Fagnani <matt.fagnani> |
Component: | Energy Information | Assignee: | Kai Uwe Broulik <kde> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | nate, rdieter |
Priority: | NOR | ||
Version: | 5.13.5 | ||
Target Milestone: | --- | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
valgrind log for when kinfocenter crashed due to invalid reads
valgrind log for when kinfocenter closed normally strace kinfocenter output before making any further changes |
Description
Matt Fagnani
2018-11-07 02:51:23 UTC
*** This bug has been marked as a duplicate of bug 387366 *** I added the following check of currentBattery being null to /usr/share/kpackage/kcms/kcm_energyinfo/contents/ui/main.qml right before line 459 if (currentBattery === null) { return "No battery" } var value = currentBattery[modelData.value] I haven't see the errors of the form "file:///usr/share/kpackage/kcms/kcm_energyinfo/contents/ui/main.qml:459: TypeError: Cannot read property * of null" after I made that change, started kinfocenter and clicked on Energy Information. I changed the function scalePoint in /usr/share/kpackage/kcms/kcm_energyinfo/contents/ui/Graph.qml so that if plot was undefined, then scaledX and scaledY weren't calculated and the returned value didn't include those variables. function scalePoint(plot) { if (plot === undefined) { return Qt.point(xPadding, height - yPadding); } else { var scaledX = (plot.x - xMin) * plotWidth / (xMax-xMin); var scaledY = (plot.y - yMin) * plotHeight / (yMax-yMin); return Qt.point(xPadding + scaledX, height - yPadding - scaledY); } } I haven't see the error "//usr/share/kpackage/kcms/kcm_energyinfo/contents/ui/Graph.qml:64: TypeError: Cannot read property 'x' of undefined" after I made that change, started kinfocenter and clicked on Energy Information. The Energy Consumption Statistics panel was still blank after those changes. I ran strace kinfocenter which showed many statx system calls checking for files named kinfocenter.mo and kinfocenter.js which returned -1 ENOENT (No such file or directory). My language was set to en_CA which was included in the paths being checked for kinfocenter.mo. I noted that /usr/share/locale/en_GB/LC_MESSAGES/kinfocenter.mo was provided by the kinfocenter package using sudo dnf repoquery -l kinfocenter | less, but no such file for en_CA was present. In System Settings > Regional Settings > Language , I set British english. kinfocenter.mo was found as shown when running strace kinfocenter after that statx(AT_FDCWD, "/usr/share/locale/en_GB/LC_MESSAGES/kcm_energyinfo.mo", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=3138, ...}) = 0 sudo dnf repoquery --whatprovides *kcm_energyinfo.js showed no package providing kcm_energyinfo.js . I've been unable to find that file elsewhere. The absence of kcm_energyinfo.js might be involved in this issue. /usr/lib/qt5/plugins/kcms/kcm_energyinfo.so was found after many statx calls that returned No such file or directory errors: ... statx(AT_FDCWD, "/usr/lib/qt5/plugins/kcms/kcm_energyinfo", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0xbfb0274c) = -1 ENOENT (No such file or directory) statx(AT_FDCWD, "/usr/lib/qt5/plugins/kcms/kcm_energyinfo.so", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=136888, ...}) = 0 openat(AT_FDCWD, "/usr/lib/qt5/plugins/kcms/kcm_energyinfo.so", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 15 ... Later in the strace output 12 statx calls returned -1 ENOENT (No such file or directory) without finding checking for /usr/lib/qt5/plugins/kcms/kcm_energyinfo.so I ran sudo ln /usr/lib/qt5/plugins/kcms/kcm_energyinfo.so /usr/lib/qt5/plugins/kcm_energyinfo.so followed by strace kinfocenter. /usr/lib/qt5/plugins/kcm_energyinfo.so was then found and opened, but the Energy Information was still blank. ... statx(AT_FDCWD, "/usr/lib/qt5/plugins/kcm_energyinfo.so", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=136888, ...}) = 0 openat(AT_FDCWD, "/usr/lib/qt5/plugins/kcm_energyinfo.so", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 15 ... I saw some shmctl calls which were trying to remove shared memory segments returning -1 invalid argument after I clicked on Energy Information such as shmctl(13402151, IPC_64|IPC_RMID, NULL) = -1 EINVAL (Invalid argument) I don't know if these might be related to this issue. I ran valgrind valgrind --log-file=valgrind_kinfocenter_1.txt kinfocenter which noted some memory leaks. I installed some more of the qt5 and kf5 debug packages involved in the crash traces and memory leaks many of which involved /usr/lib/libQt5Quick.so.5.11.1 and /usr/lib/libQt5Qml.so.5.11.1 provided by qt5-qtdeclarative. When I ran valgrind --leak-check=yes --log-file=valgrind_kinfocenter_3.txt kinfocenter , then I clicked on Energy Information, and closed kinfocenter I saw a pop up window stating "Application "kinfocenter" is not responding You tried to close window "KInfocentre — Info Centre" from application "kinfocenter" (Process ID: 2048) but the application is not responding. Do you want to terminate this application? Warning: Terminating the application will close all of its child windows. Any unsaved data will be lost. Terminate Program kinfocenter Wait Longer" After I clicked Wait Longer, the valgrind log showed that kinfocenter crashed due to invalid reads of size 4 and 2 as follows ==2048== Invalid read of size 4 ==2048== at 0x586EBB7: QGuiApplicationPrivate::processActivatedEvent(QWindowSystemInterfacePrivate::ActivatedWindowEvent*) (qguiapplication.cpp:2270) ==2048== by 0x586F0E0: QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (qguiapplication.cpp:1837) ==2048== by 0x5844E13: QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qwindowsysteminterface.cpp:1032) ==2048== by 0xB193E41: QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:70) ==2048== by 0x6064B6E: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:214) ==2048== by 0x606D3E1: QCoreApplication::exec() (qcoreapplication.cpp:1336) ==2048== by 0x5862234: QGuiApplication::exec() (qguiapplication.cpp:1761) ==2048== by 0x5157D17: QApplication::exec() (qapplication.cpp:2901) ==2048== by 0x113E64: main (main.cpp:76) ==2048== Address 0xf09b680 is 0 bytes inside a block of size 44 free'd ==2048== at 0x4836D85: operator delete(void*, unsigned int) (vg_replace_malloc.c:581) ==2048== by 0x51B8EA7: QWidgetWindow::~QWidgetWindow() (qwidgetwindow.cpp:166) ==2048== by 0x518AC59: QWidgetPrivate::deleteTLSysExtra() (qwidget.cpp:1901) ==2048== by 0x518FDF8: QWidget::destroy(bool, bool) (qwidget.cpp:12453) ==2048== by 0x519801A: QWidget::~QWidget() (qwidget.cpp:1710) ==2048== by 0x52C1EC0: QMainWindow::~QMainWindow() (qmainwindow.cpp:389) ==2048== by 0x4A4A5E2: KMainWindow::~KMainWindow() (in /usr/lib/libKF5XmlGui.so.5.51.0) ==2048== by 0x4A98418: KXmlGuiWindow::~KXmlGuiWindow() (in /usr/lib/libKF5XmlGui.so.5.51.0) ==2048== by 0x11435B: KInfoCenter::~KInfoCenter() (infocenter.cpp:93) ==2048== by 0x1143ED: KInfoCenter::~KInfoCenter() (infocenter.cpp:109) ==2048== by 0x609177A: QObject::event(QEvent*) (qobject.cpp:1242) ==2048== by 0x519D66C: QWidget::event(QEvent*) (qwidget.cpp:9347) ==2048== Block was alloc'd at ==2048== at 0x4835C89: operator new(unsigned int) (vg_replace_malloc.c:328) ==2048== by 0x5184C77: QWidgetPrivate::createTLSysExtra() (qwidget.cpp:1538) ==2048== by 0x518D93B: QWidget::setAttribute(Qt::WidgetAttribute, bool) (qwidget.cpp:11300) ==2048== by 0x518EABC: QWidget::winId() const (qwidget.cpp:2533) ==2048== by 0x4A4C14C: KMainWindow::applyMainWindowSettings(KConfigGroup const&) (in /usr/lib/libKF5XmlGui.so.5.51.0) ==2048== by 0x4A9A841: KXmlGuiWindow::applyMainWindowSettings(KConfigGroup const&) (in /usr/lib/libKF5XmlGui.so.5.51.0) ==2048== by 0x4A4C2E1: KMainWindow::setAutoSaveSettings(QString const&, bool) (in /usr/lib/libKF5XmlGui.so.5.51.0) ==2048== by 0x4A9A5E2: KXmlGuiWindow::setupGUI(QSize const&, QFlags<KXmlGuiWindow::StandardWindowOption>, QString const&) (in /usr/lib/libKF5XmlGui.so.5.51.0) ==2048== by 0x115CB1: KInfoCenter::KInfoCenter() (infocenter.cpp:84) ==2048== by 0x116E5B: KicApp::KicApp(int&, char**) (main.cpp:64) ==2048== by 0x113E5A: main (main.cpp:72) ==2048== ==2048== Thread 3 QDBusConnectionM: ==2048== Invalid read of size 2 ==2048== at 0x60BCFFC: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:88) ==2048== by 0x9A552C1: g_main_context_check (gmain.c:3753) ==2048== by 0x9A558B4: g_main_context_iterate.isra.20 (gmain.c:3917) ==2048== by 0x9A55A5A: g_main_context_iteration (gmain.c:3981) ==2048== by 0x60BD15C: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:423) ==2048== by 0x6064B6E: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:214) ==2048== by 0x5ECDDD0: QThread::exec() (qthread.cpp:525) ==2048== by 0x5D3D0CF: QDBusConnectionManager::run() (qdbusconnection.cpp:178) ==2048== by 0x5ED8908: QThreadPrivate::start(void*) (qthread_unix.cpp:367) ==2048== by 0x785E5DD: start_thread (pthread_create.c:486) ==2048== by 0x669E789: clone (clone.S:108) ==2048== Address 0xccd43b6 is 6 bytes inside a block of size 12 free'd ==2048== at 0x4836D85: operator delete(void*, unsigned int) (vg_replace_malloc.c:581) ==2048== by 0x60BD91F: QEventDispatcherGlib::unregisterSocketNotifier(QSocketNotifier*) (qeventdispatcher_glib.cpp:504) ==2048== by 0x609CD81: QSocketNotifier::setEnabled(bool) (qsocketnotifier.cpp:246) ==2048== by 0x60BCFF4: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:88) ==2048== by 0x9A552C1: g_main_context_check (gmain.c:3753) ==2048== by 0x9A558B4: g_main_context_iterate.isra.20 (gmain.c:3917) ==2048== by 0x9A55A5A: g_main_context_iteration (gmain.c:3981) ==2048== by 0x60BD15C: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:423) ==2048== by 0x6064B6E: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:214) ==2048== by 0x5ECDDD0: QThread::exec() (qthread.cpp:525) ==2048== by 0x5D3D0CF: QDBusConnectionManager::run() (qdbusconnection.cpp:178) ==2048== by 0x5ED8908: QThreadPrivate::start(void*) (qthread_unix.cpp:367) ==2048== Block was alloc'd at ==2048== at 0x4835C89: operator new(unsigned int) (vg_replace_malloc.c:328) ==2048== by 0x60BD7EC: QEventDispatcherGlib::registerSocketNotifier(QSocketNotifier*) (qeventdispatcher_glib.cpp:460) ==2048== by 0x609CC75: QSocketNotifier::QSocketNotifier(int, QSocketNotifier::Type, QObject*) (qsocketnotifier.cpp:155) ==2048== by 0x5D484F8: qDBusAddWatch (qdbusintegrator.cpp:213) ==2048== by 0x7A2C688: _dbus_watch_list_set_functions (in /usr/lib/libdbus-1.so.3.19.8) ==2048== by 0x7A10219: dbus_connection_set_watch_functions (in /usr/lib/libdbus-1.so.3.19.8) ==2048== by 0x5D4B00A: q_dbus_connection_set_watch_functions (qdbus_symbols_p.h:229) ==2048== by 0x5D4B00A: QDBusConnectionPrivate::setConnection(DBusConnection*, QDBusErrorInternal const&) (qdbusintegrator.cpp:1794) ==2048== by 0x5D3F6F7: QDBusConnectionManager::executeConnectionRequest(QDBusConnectionManager::ConnectionRequestData*) (qdbusconnection.cpp:289) ==2048== by 0x608E203: call (qobjectdefs_impl.h:376) ==2048== by 0x608E203: QMetaCallEvent::placeMetaCall(QObject*) (qobject.cpp:504) ==2048== by 0x6091752: QObject::event(QEvent*) (qobject.cpp:1251) ==2048== by 0x5ECDEFA: QThread::event(QEvent*) (qthread.cpp:832) ==2048== by 0x6065DC1: doNotify(QObject*, QEvent*) (qcoreapplication.cpp:1138) ==2048== ==2048== Invalid read of size 2 ==2048== at 0x60BCF60: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:79) ==2048== by 0x9A552C1: g_main_context_check (gmain.c:3753) ==2048== by 0x9A558B4: g_main_context_iterate.isra.20 (gmain.c:3917) ==2048== by 0x9A55A5A: g_main_context_iteration (gmain.c:3981) ==2048== by 0x60BD15C: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:423) ==2048== by 0x6064B6E: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:214) ==2048== by 0x5ECDDD0: QThread::exec() (qthread.cpp:525) ==2048== by 0x5D3D0CF: QDBusConnectionManager::run() (qdbusconnection.cpp:178) ==2048== by 0x5ED8908: QThreadPrivate::start(void*) (qthread_unix.cpp:367) ==2048== by 0x785E5DD: start_thread (pthread_create.c:486) ==2048== by 0x669E789: clone (clone.S:108) ==2048== Address 0xccd43b4 is 4 bytes inside a block of size 12 free'd ==2048== at 0x4836D85: operator delete(void*, unsigned int) (vg_replace_malloc.c:581) ==2048== by 0x60BD91F: QEventDispatcherGlib::unregisterSocketNotifier(QSocketNotifier*) (qeventdispatcher_glib.cpp:504) ==2048== by 0x609CD81: QSocketNotifier::setEnabled(bool) (qsocketnotifier.cpp:246) ==2048== by 0x60BCFF4: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:88) ==2048== by 0x9A552C1: g_main_context_check (gmain.c:3753) ==2048== by 0x9A558B4: g_main_context_iterate.isra.20 (gmain.c:3917) ==2048== by 0x9A55A5A: g_main_context_iteration (gmain.c:3981) ==2048== by 0x60BD15C: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:423) ==2048== by 0x6064B6E: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:214) ==2048== by 0x5ECDDD0: QThread::exec() (qthread.cpp:525) ==2048== by 0x5D3D0CF: QDBusConnectionManager::run() (qdbusconnection.cpp:178) ==2048== by 0x5ED8908: QThreadPrivate::start(void*) (qthread_unix.cpp:367) ==2048== Block was alloc'd at ==2048== at 0x4835C89: operator new(unsigned int) (vg_replace_malloc.c:328) ==2048== by 0x60BD7EC: QEventDispatcherGlib::registerSocketNotifier(QSocketNotifier*) (qeventdispatcher_glib.cpp:460) ==2048== by 0x609CC75: QSocketNotifier::QSocketNotifier(int, QSocketNotifier::Type, QObject*) (qsocketnotifier.cpp:155) ==2048== by 0x5D484F8: qDBusAddWatch (qdbusintegrator.cpp:213) ==2048== by 0x7A2C688: _dbus_watch_list_set_functions (in /usr/lib/libdbus-1.so.3.19.8) ==2048== by 0x7A10219: dbus_connection_set_watch_functions (in /usr/lib/libdbus-1.so.3.19.8) ==2048== by 0x5D4B00A: q_dbus_connection_set_watch_functions (qdbus_symbols_p.h:229) ==2048== by 0x5D4B00A: QDBusConnectionPrivate::setConnection(DBusConnection*, QDBusErrorInternal const&) (qdbusintegrator.cpp:1794) ==2048== by 0x5D3F6F7: QDBusConnectionManager::executeConnectionRequest(QDBusConnectionManager::ConnectionRequestData*) (qdbusconnection.cpp:289) ==2048== by 0x608E203: call (qobjectdefs_impl.h:376) ==2048== by 0x608E203: QMetaCallEvent::placeMetaCall(QObject*) (qobject.cpp:504) ==2048== by 0x6091752: QObject::event(QEvent*) (qobject.cpp:1251) ==2048== by 0x5ECDEFA: QThread::event(QEvent*) (qthread.cpp:832) ==2048== by 0x6065DC1: doNotify(QObject*, QEvent*) (qcoreapplication.cpp:1138) I ran valgrind --leak-check=yes --log-file=valgrind_kinfocenter_4.txt kinfocenter and then I clicked on Energy Information, and closed kinfocenter I saw the same pop up window, clicked Wait Longer and kinfocenter closed normally. I'll attach some of the valgrind and strace output. Created attachment 116171 [details]
valgrind log for when kinfocenter crashed due to invalid reads
Created attachment 116172 [details]
valgrind log for when kinfocenter closed normally
Created attachment 116173 [details]
strace kinfocenter output before making any further changes
drkonqi showed that valgrind --leak-check=yes --log-file=valgrind_kinfocenter_3.txt kinfocenter crashed due to a segmentation fault with the following trace although the functions shown appear to be mostly from valgrind. Application: Info Centre (memcheck-x86-linux), signal: Segmentation fault vgModuleLocal_do_syscall_for_client_WRK () at m_syswrap/syscall-x86-linux.S:127 127 movl 4+FSZ(%esp), %ebx [Current thread is 1 (LWP 2048)] Thread 3 (LWP 2059): #0 0x5804db42 in do_syscall_WRK () #1 0x5804dd6b in vgPlain_do_syscall (sysno=4, a1=1029, a2=1924636134, a3=1, a4=0, a5=0, a6=0, a7=0, a8=0) at m_syscall.c:928 #2 0x5803b707 in vgPlain_write (fd=1029, buf=0x72b79de6, count=1) at m_libcfile.c:224 #3 0x580dc3a5 in vgModuleLocal_sema_up (sema=0x61e2ed88, as_LL=0 '\000') at m_scheduler/sema.c:144 #4 0x580dbfff in release_sched_lock (p=0x61e2ed88) at m_scheduler/sched-lock-generic.c:76 #5 0x5808fe9d in vgPlain_release_BigLock_LL (who=0x0) at m_scheduler/scheduler.c:412 #6 vgPlain_release_BigLock (tid=4, sleepstate=VgTs_WaitSys, who=0x581a7bc0 "VG_(client_syscall)[async]") at m_scheduler/scheduler.c:388 #7 0x58092f73 in vgPlain_client_syscall (tid=<optimized out>, trc=<optimized out>) at m_syswrap/syswrap-main.c:1956 #8 0x5808f9b9 in handle_syscall (tid=tid@entry=4, trc=77) at m_scheduler/scheduler.c:1176 #9 0x58090ff7 in vgPlain_scheduler (tid=<optimized out>) at m_scheduler/scheduler.c:1498 #10 0x580dc698 in thread_wrapper (tidW=4) at m_syswrap/syswrap-linux.c:103 #11 run_a_thread_NORETURN (tidW=4) at m_syswrap/syswrap-linux.c:156 #12 0x580dc8cf in vgModuleLocal_start_thread_NORETURN (arg=0x61e34120) at m_syswrap/syswrap-linux.c:320 #13 0x580a0a3f in do_syscall_clone_x86_linux () #14 0xdeadbeef in ?? () #15 0xdeadbeef in ?? () #16 0xdeadbeef in ?? () #17 0xdeadbeef in ?? () #18 0xdeadbeef in ?? () #19 0xdeadbeef in ?? () #20 0xdeadbeef in ?? () #21 0xdeadbeef in ?? () #22 0xdeadbeef in ?? () #23 0x00000000 in ?? () Thread 2 (LWP 2052): #1 0x00001cb3 in ?? () #2 0x0c7b4e30 in ?? () Backtrace stopped: previous frame inner to this frame (corrupt stack?) Thread 1 (LWP 2048): #1 0x58092f8c in do_syscall_for_client (syscall_mask=0x62ca8e48, tst=0xffffff8c, syscallno=162) at m_syswrap/syswrap-main.c:1964 #2 vgPlain_client_syscall (tid=<optimized out>, trc=<optimized out>) at m_syswrap/syswrap-main.c:1964 #3 0x5808f9b9 in handle_syscall (tid=tid@entry=1, trc=77) at m_scheduler/scheduler.c:1176 #4 0x58090ff7 in vgPlain_scheduler (tid=<optimized out>) at m_scheduler/scheduler.c:1498 #5 0x580dc698 in thread_wrapper (tidW=1) at m_syswrap/syswrap-linux.c:103 #6 run_a_thread_NORETURN (tidW=1) at m_syswrap/syswrap-linux.c:156 #7 0x00000000 in ?? () [Inferior 1 (process 2048) detached] kinfocenter 5.14.3 still shows the blank Energy Consumption Statistics after I updated to Plasma 5.14.3 and KF5 5.52.0. I saw three error messages in addition to those I mentioned before relating to kirigami in the journal right after clicking on Energy Information. kinfocenter[4755]: file:///usr/lib/qt5/qml/org/kde/kirigami.2/templates/AbstractApplicationHeader.qml:113: TypeError: Cannot read property 'globalToolBarItem' of null kinfocenter[4755]: file:///usr/lib/qt5/qml/org/kde/kirigami.2/private/globaltoolbar/BreadcrumbControl.qml:62:59: Unable to assign QQuickItem_QML_102 to Page_QMLTYPE_40 kinfocenter[4755]: file:///usr/lib/qt5/qml/org/kde/kirigami.2/templates/AbstractApplicationHeader.qml:46:25: Unable to assign QQuickItem_QML_102 to Page_QMLTYPE_40 /usr/lib/qt5/qml/org/kde/kirigami.2/templates/AbstractApplicationHeader.qml:113 is target: root.page.globalToolBarItem. I guess the first error indicates that root.page and maybe root might be null due to the panel being blank. /usr/lib/qt5/qml/org/kde/kirigami.2/private/globaltoolbar/BreadcrumbControl.qml:62 is readonly property Kirigami.Page page: pageRow.get(modelData) /usr/lib/qt5/qml/org/kde/kirigami.2/templates/AbstractApplicationHeader.qml:46 is property Page page: pageRow.currentItem Checking if root.page or root are null or pageRow is undefined or null before that or resolving the blank panel issue might avoid those errors. |