Bug 292603 - KHelpCenter crash in KHC::Navigator::selectItem
Summary: KHelpCenter crash in KHC::Navigator::selectItem
Status: RESOLVED DOWNSTREAM
Alias: None
Product: khelpcenter
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Documentation Editorial Team
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-27 16:19 UTC by Christopher Yeleighton
Modified: 2022-08-29 07:38 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi (3.39 KB, text/plain)
2022-08-29 07:38 UTC, xxzlmhs
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christopher Yeleighton 2012-01-27 16:19:57 UTC
Application: khelpcenter (4.7.2 (4.7.2) "release 5")
KDE Platform Version: 4.7.2 (4.7.2) "release 5"
Qt Version: 4.7.4
Operating System: Linux 3.1.0-1.2-desktop x86_64
Distribution: "openSUSE 12.1 (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:

Since KDE ignored my setting of e-mail client to mailx, I told Application Settings to show help.

-- Backtrace:
Application: Centrum pomocy KDE (kdeinit4), signal: Segmentation fault
[KCrash Handler]
#6  data (this=0x8) at ../../src/corelib/tools/qscopedpointer.h:135
#7  qGetPtrHelper<QScopedPointer<QObjectData> > (p=...) at ../../src/corelib/global/qglobal.h:2342
#8  d_func (this=0x0) at itemviews/qtreewidget.h:370
#9  QTreeWidget::currentItem (this=0x0) at itemviews/qtreewidget.cpp:2777
#10 0x00007fb0e15cb898 in KHC::Navigator::selectItem (this=0xfee9a0, url=...) at /usr/src/debug/kde-runtime-4.7.2/khelpcenter/navigator.cpp:326
#11 0x00007fb0e15e483c in openUrl (url=..., this=0xff1260) at /usr/src/debug/kde-runtime-4.7.2/khelpcenter/mainwindow.cpp:408
#12 KHC::MainWindow::openUrl (this=0xff1260, url=...) at /usr/src/debug/kde-runtime-4.7.2/khelpcenter/mainwindow.cpp:404
#13 0x00007fb0e15ec1bd in newInstance (this=0x7ffffac6e1c0) at /usr/src/debug/kde-runtime-4.7.2/khelpcenter/application.cpp:52
#14 KHC::Application::newInstance (this=0x7ffffac6e1c0) at /usr/src/debug/kde-runtime-4.7.2/khelpcenter/application.cpp:36
#15 0x00007fb0f380b772 in KUniqueApplicationAdaptor::newInstance (this=0x81e7d0, asn_id=<optimized out>, args=...) at /usr/src/debug/kdelibs-4.7.2/kdeui/kernel/kuniqueapplication.cpp:442
#16 0x00007fb0f380b812 in KUniqueApplicationAdaptor::qt_metacall (this=0x81e7d0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7ffffac6d470) at /usr/src/debug/kdelibs-4.7.2/build/kdeui/kuniqueapplication_p.moc:81
#17 0x00007fb0ef82f9fb in QDBusConnectionPrivate::deliverCall (this=0x6ce160, object=0x81e7d0, msg=..., metaTypes=..., slotIdx=4) at qdbusintegrator.cpp:942
#18 0x00007fb0ef830bcd in QDBusConnectionPrivate::activateCall (this=0x6ce160, object=0x81e7d0, flags=337, msg=...) at qdbusintegrator.cpp:852
#19 0x00007fb0ef8314a2 in QDBusConnectionPrivate::activateObject (this=0x6ce160, node=..., msg=..., pathStartPos=<optimized out>) at qdbusintegrator.cpp:1410
#20 0x00007fb0ef831578 in QDBusActivateObjectEvent::placeMetaCall (this=0x6df270) at qdbusintegrator.cpp:1524
#21 0x00007fb0f2a8a14a in QObject::event (this=0x7ffffac6e1c0, e=<optimized out>) at kernel/qobject.cpp:1226
#22 0x00007fb0f1c29b04 in QApplication::event (this=0x7ffffac6e1c0, e=0x6df270) at kernel/qapplication.cpp:2522
#23 0x00007fb0f1c25c34 in notify_helper (e=0x6df270, receiver=0x7ffffac6e1c0, this=0x6dc760) at kernel/qapplication.cpp:4481
#24 QApplicationPrivate::notify_helper (this=0x6dc760, receiver=0x7ffffac6e1c0, e=0x6df270) at kernel/qapplication.cpp:4453
#25 0x00007fb0f1c2aac1 in QApplication::notify (this=0x7ffffac6e1c0, receiver=0x7ffffac6e1c0, e=0x6df270) at kernel/qapplication.cpp:4360
#26 0x00007fb0f3805e36 in KApplication::notify (this=0x7ffffac6e1c0, receiver=0x7ffffac6e1c0, event=0x6df270) at /usr/src/debug/kdelibs-4.7.2/kdeui/kernel/kapplication.cpp:311
#27 0x00007fb0f2a7381c in QCoreApplication::notifyInternal (this=0x7ffffac6e1c0, receiver=0x7ffffac6e1c0, event=0x6df270) at kernel/qcoreapplication.cpp:787
#28 0x00007fb0f2a76bf8 in sendEvent (event=0x6df270, receiver=0x7ffffac6e1c0) at kernel/qcoreapplication.h:215
#29 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x615800) at kernel/qcoreapplication.cpp:1428
#30 0x00007fb0f2a9e0b3 in sendPostedEvents () at kernel/qcoreapplication.h:220
#31 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:277
#32 0x00007fb0ee28158d in g_main_dispatch (context=0x6e20e0) at gmain.c:2425
#33 g_main_context_dispatch (context=0x6e20e0) at gmain.c:2995
#34 0x00007fb0ee281d88 in g_main_context_iterate (context=0x6e20e0, block=<optimized out>, dispatch=1, self=<optimized out>) at gmain.c:3073
#35 0x00007fb0ee281f59 in g_main_context_iteration (context=0x6e20e0, may_block=1) at gmain.c:3136
#36 0x00007fb0f2a9e50f in QEventDispatcherGlib::processEvents (this=0x6daf10, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#37 0x00007fb0f1cc8f9e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=<optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#38 0x00007fb0f2a72a22 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#39 0x00007fb0f2a72c1f in QEventLoop::exec (this=0x7ffffac6e150, flags=...) at kernel/qeventloop.cpp:201
#40 0x00007fb0f2a76de7 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064
#41 0x00007fb0e15ec956 in kdemain (argc=3, argv=0x689460) at /usr/src/debug/kde-runtime-4.7.2/khelpcenter/application.cpp:87
#42 0x0000000000408897 in launch (argc=3, _name=0x689208 "/usr/bin/khelpcenter", args=<optimized out>, cwd=0x0, envc=<optimized out>, envs=<optimized out>, reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x40b22e "0") at /usr/src/debug/kdelibs-4.7.2/kinit/kinit.cpp:734
#43 0x0000000000409966 in handle_launcher_request (sock=8, who=<optimized out>) at /usr/src/debug/kdelibs-4.7.2/kinit/kinit.cpp:1226
#44 0x0000000000409ea7 in handle_requests (waitForPid=0) at /usr/src/debug/kdelibs-4.7.2/kinit/kinit.cpp:1419
#45 0x00000000004057a7 in main (argc=4, argv=0x7fff00000001, envp=0x7ffffac6f660) at /usr/src/debug/kdelibs-4.7.2/kinit/kinit.cpp:1907

Reported using DrKonqi
Comment 1 Albert Astals Cid 2012-01-27 17:15:02 UTC
There has to be something broken in OpenSuse, your backtrace says that line 326 of navigator.cpp called to currentItem, but the line 326 of navigator.cpp does call to currentItem as you can see in https://projects.kde.org/projects/kde/kde-runtime/repository/revisions/v4.7.2/entry/khelpcenter/navigator.cpp#L326
Comment 2 Albert Astals Cid 2012-01-27 17:17:44 UTC
Adding Will to see if he can shed some light as to why the opensuse sources do not match with KDE ones.
Comment 3 Christopher Yeleighton 2012-01-28 01:54:00 UTC
--- khelpcenter/navigator.cpp.orig
+++ khelpcenter/navigator.cpp
@@ -65,6 +65,7 @@
 #include "searchwidget.h"
 #include "searchengine.h"
 #include "docmetainfo.h"
+#include "docentry.h"
 #include "docentrytraverser.h"
 #include "glossary.h"
 #include "toc.h"
@@ -268,6 +269,11 @@ void Navigator::createItemFromDesktopFil
                                            const QString &file )
 {
     KDesktopFile desktopFile( file );
+
+    if (!DocEntry::isForRunningDesktopEnvironment(desktopFile)) {
+      return;
+    }
+
     QString docPath = desktopFile.readDocPath();
     if ( !docPath.isNull() ) {
       // First parameter is ignored if second is an absolute path
@@ -310,6 +316,9 @@ void Navigator::selectItem( const KUrl &
   {
      alternativeURL.setQuery("anchor="+url.ref());
      alternativeURL.setRef(QString());
+  } else if (url.url().endsWith("/index.html"))
+  {
+    alternativeURL = KUrl (url.url().left (url.url().length() - strlen ("/index.html")));
   }
 
   // If the navigator already has the given URL selected, do nothing.
Index: khelpcenter/navigatoritem.cpp

Bug Novell 743932 Submitted
Comment 4 xxzlmhs 2022-08-29 07:38:01 UTC
Created attachment 151676 [details]
New crash information added by DrKonqi

khelpcenter (5.8.22041) using Qt 5.15.4

KDE helpceter start automatically (when I am setting up the shortcut of plasma?) and restart again and again once I close it.

-- Backtrace (Reduced):
#4  0x00007fcd4f65e381 in QItemSelectionModel::currentIndex() const () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fcd505cfdd1 in QAbstractItemView::currentIndex() const () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6  0x00007fcd50653dd4 in QTreeWidget::currentItem() const () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
[...]
#11 0x00007fcd50e0eee7 in KDBusService::activateRequested(QStringList const&, QString const&) () from /lib/x86_64-linux-gnu/libKF5DBusAddons.so.5
#12 0x00007fcd50e1188e in KDBusService::CommandLine(QStringList const&, QString const&, QMap<QString, QVariant> const&) () from /lib/x86_64-linux-gnu/libKF5DBusAddons.so.5