Bug 428529 - dolphin crashes upon right-click if dolphin-plugins not same version
Summary: dolphin crashes upon right-click if dolphin-plugins not same version
Status: RESOLVED DOWNSTREAM
Alias: None
Product: dolphin
Classification: Applications
Component: general (show other bugs)
Version: 20.08.2
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Dolphin Bug Assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-10-31 19:25 UTC by kde
Modified: 2020-11-17 09:59 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kde 2020-10-31 19:25:41 UTC
Dolphin crashes upon right-click if dolphin-plugins is not exact same version, observed in Debian/testing with dolphin 20.08.2 and dolphin-plugins 20.04.2

The crash upon placing a right-click with the mouse somewhere in the Dolphin app does not occure in other apps or other KDE apps or the KDE Plasma desktop, it appears to only appear in Dolphin.
I first consulted the debian-kde mailing list for advice, and here ist the relevant text of interest from that conversation:

My provided log text extracted from the KDE Bug Reporting Tool --> Developer Information:

Application: Dolphin (kdeinit5), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f7275e01bc0 (LWP 3280))]

Thread 8 (Thread 0x7f725cd6e700 (LWP 3289)):
#0  0x00007f72796c035f in __GI___poll (fds=0x7f7240004a60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f7277c19dde in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f7277c19eff in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f7279a8931b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f7279a324db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f72798598de in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f727985aa01 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f72786adea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#8  0x00007f72796cad4f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7f725dca3700 (LWP 3288)):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x56084070bbc8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56084070bb78, cond=0x56084070bba0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x56084070bba0, mutex=0x56084070bb78) at pthread_cond_wait.c:638
#3  0x00007f726aa3cc9b in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#4  0x00007f726aa3c777 in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#5  0x00007f72786adea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007f72796cad4f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7f725e4a4700 (LWP 3287)):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x56084070bbc8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56084070bb78, cond=0x56084070bba0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x56084070bba0, mutex=0x56084070bb78) at pthread_cond_wait.c:638
#3  0x00007f726aa3cc9b in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#4  0x00007f726aa3c777 in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#5  0x00007f72786adea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007f72796cad4f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f725eca5700 (LWP 3286)):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x56084070bbc8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56084070bb78, cond=0x56084070bba0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x56084070bba0, mutex=0x56084070bb78) at pthread_cond_wait.c:638
#3  0x00007f726aa3cc9b in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#4  0x00007f726aa3c777 in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#5  0x00007f72786adea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007f72796cad4f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f725f4a6700 (LWP 3285)):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x56084070bbc8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56084070bb78, cond=0x56084070bba0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x56084070bba0, mutex=0x56084070bb78) at pthread_cond_wait.c:638
#3  0x00007f726aa3cc9b in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#4  0x00007f726aa3c777 in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#5  0x00007f72786adea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007f72796cad4f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f7269039700 (LWP 3284)):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x5608408af7bc) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5608408af768, cond=0x5608408af790) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x5608408af790, mutex=0x5608408af768) at pthread_cond_wait.c:638
#3  0x00007f726aa3cc9b in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#4  0x00007f726aa3c777 in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#5  0x00007f72786adea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007f72796cad4f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f72716e6700 (LWP 3283)):
#0  0x00007f72796c035f in __GI___poll (fds=0x7f72640127b0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f7277c19dde in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f7277c19eff in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f7279a8931b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f7279a324db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f72798598de in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f7275395a27 in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007f727985aa01 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f72786adea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007f72796cad4f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f7275e01bc0 (LWP 3280)):
[KCrash Handler]
#4  0x0000000000000000 in ?? ()
#5  0x00007f7273475f23 in VersionControlObserver::actions(KFileItemList const&) const () from /lib/x86_64-linux-gnu/libdolphinprivate.so.5
#6  0x00007f727346738c in DolphinView::versionControlActions(KFileItemList const&) const () from /lib/x86_64-linux-gnu/libdolphinprivate.so.5
#7  0x00007f7273523c0b in ?? () from /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so
#8  0x00007f72735249c5 in ?? () from /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so
#9  0x00007f72735256bf in ?? () from /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so
#10 0x00007f727351cc22 in ?? () from /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so
#11 0x00007f7279a688c6 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007f72733fdbd4 in DolphinView::requestContextMenu(QPoint const&, KFileItem const&, QUrl const&, QList<QAction*> const&) () from /lib/x86_64-linux-gnu/libdolphinprivate.so.5
#13 0x00007f7273464d0c in DolphinView::slotViewContextMenuRequested(QPointF const&) () from /lib/x86_64-linux-gnu/libdolphinprivate.so.5
#14 0x00007f7279a688c6 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007f72733fc1b5 in KItemListController::viewContextMenuRequested(QPointF const&) () from /lib/x86_64-linux-gnu/libdolphinprivate.so.5
#16 0x00007f727342a5fc in KItemListController::mousePressEvent(QGraphicsSceneMouseEvent*, QTransform const&) () from /lib/x86_64-linux-gnu/libdolphinprivate.so.5
#17 0x00007f727342c809 in KItemListController::processEvent(QEvent*, QTransform const&) () from /lib/x86_64-linux-gnu/libdolphinprivate.so.5
#18 0x00007f727343c09d in KItemListView::event(QEvent*) () from /lib/x86_64-linux-gnu/libdolphinprivate.so.5
#19 0x00007f727882903f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007f7279a33b62 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007f7278b3be25 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007f7278b3c1c1 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007f7278b4478a in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007f7278b4e501 in QGraphicsScene::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007f727882903f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007f7279a33b62 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007f7278b6a845 in QGraphicsView::mousePressEvent(QMouseEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007f727886952e in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007f7278910d4e in QFrame::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007f7279a3387b in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007f727882902e in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007f727882e781 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007f7279a33b62 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007f727882d696 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007f727888195e in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007f72788847ae in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007f727882903f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007f7279a33b62 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#39 0x00007f7279dfd45b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#40 0x00007f7279dd3c0b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#41 0x00007f7272d0cb6a in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#42 0x00007f7277c19b9b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007f7277c19e48 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007f7277c19eff in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#45 0x00007f7279a892ff in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#46 0x00007f7279a324db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#47 0x00007f7279a3a782 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#48 0x00007f727350c255 in kdemain () from /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so
#49 0x000056083e7bdf6e in ?? ()
#50 0x000056083e7bf381 in ?? ()
#51 0x000056083e7bfb19 in ?? ()
#52 0x000056083e7bb60f in ?? ()
#53 0x00007f72795f3cca in __libc_start_main (main=0x56083e7bac70, argc=1, argv=0x7ffcb32d1428, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffcb32d1418) at ../csu/libc-start.c:308
#54 0x000056083e7bc10a in ?? ()
[Inferior 1 (process 3280) detached]


The answer from an expert:

The answer is in the very clear, concise and understandable call stack. 
Here:

> Thread 1 (Thread 0x7f7275e01bc0 (LWP 3280)):
> [KCrash Handler]
[…]
> #5  0x00007f7273475f23 in VersionControlObserver::actions(KFileItemList
> const&) const () from /lib/x86_64-linux-gnu/libdolphinprivate.so.5
> #6  0x00007f727346738c in
> DolphinView::versionControlActions(KFileItemList const&) const () from
[…]
> #12 0x00007f72733fdbd4 in DolphinView::requestContextMenu(QPoint const&,
> KFileItem const&, QUrl const&, QList<QAction*> const&) () from
> /lib/x86_64-linux-gnu/libdolphinprivate.so.5
[…]
> KItemListController::mousePressEvent(QGraphicsSceneMouseEvent*,
> QTransform const&) () from /lib/x86_64-linux-gnu/libdolphinprivate.so.5

Note the mousePressEvent -> requestContextMenu -> versionControlActions chain.

The version control systems integration is part of dolphin-plugins and I can 
reproduce your issue with the versions currently in testing: dolphin 20.08.2 
and dolphin-plugins 20.04.2.
There seem to be a requirement to have exact same versions between the 2 that 
I haven’t seen explicitly in the make files.

So to fix it immediately you can:
- remove dolphin-plugins for now
- grab dolphin-plugins/20.08.2 from unstable
Or you can wait for dolphin-plugins/20.08.2 to migrate to testing which should 
happen in the next 24H.


I am filing this bug report here after this was recommended by the expert because other users might hit into the same problem in other situations and KDE developers probably will be reached better here than on a distribution specific mailing list.

The original debian-kde mailing list thread is here:
my post:
https://lists.debian.org/debian-kde/2020/10/msg00022.html
the clear answer of the expert:
https://lists.debian.org/debian-kde/2020/10/msg00023.html

Cudos and special thanks go to the expert: AURÉLIEN COUDERC
Thank You!
Marco.
Comment 1 José Manuel Santamaría Lema 2020-11-17 09:59:50 UTC
Hi,

I'm going to mark this issue as resolved/downstream because this is just an issue with the debian packaging, and that can be fixed for real only in the debian packaging.

Why? Let's say KDE releases a newer version KDE Applications, which would provide both newer dolphin and dolphin-plugins. Now, supose the debian "experts" update the new dolphin but not the new dolphin-plugins in sid, or that they package it improperly in a way that the newer version of dolphin migrates from sid to testing, while testing still has the older dolphin-plugins (which is exactly what they did). Can this packaging situation be fixed in the dolphin-plugins CMakeLists.txt for example? Well, the way I see it, no, because there isn't any way to prevent a distribution from providing a new version of dolphin along with an old version of dolphin plugins.

Even if we set a minimum version for DolphinVcs here:
https://invent.kde.org/sdk/dolphin-plugins/-/blob/master/CMakeLists.txt
like I said above, that's not going to stop a distribution from providing a modern dolphin along with an old dolphin-plugins, which is what caused your problem.

P.S. With all due respect: I have been doing *.deb kde packaging over the last 10 years, and maybe the debian "experts" should automate their packaging (like we did in other distributions such as Kubuntu or KDE Neon) and take better care of sid -> testing migrations so they don't end up having this random outdated mix of packages.