Bug 419170

Summary: Dolphin 19.12.3 crach using TX with bluetooth
Product: [Frameworks and Libraries] frameworks-purpose Reporter: pierrelud
Component: generalAssignee: Aleix Pol <aleixpol>
Status: RESOLVED FIXED    
Severity: crash CC: bugseforuns, c.villaltacampoverde, elvis.angelaccio, flareload, kfm-devel, mobulla1, nate, rasasi78
Priority: NOR Keywords: drkonqi
Version: 5.69.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 5.74
Sentry Crash Report:

Description pierrelud 2020-03-24 08:20:06 UTC
Application: dolphin (19.12.3)

Qt Version: 5.14.1
Frameworks Version: 5.68.0
Operating System: Linux 4.12.14-lp151.28.40-default x86_64
Windowing system: X11
Distribution: "openSUSE Leap 15.1"

-- Information about the crash:
- What I was doing when the application crashed:
Right clicked on a PDF file, chose Share->Send via Bluetooth, in popup choose my connected phone, clicked Send and boof!

The crash can be reproduced every time.

-- Backtrace:
Application: Dolphin (dolphin), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f1e6d2f6d80 (LWP 12056))]

Thread 6 (Thread 0x7f1e27a8d700 (LWP 12132)):
#0  0x00007f1e6cb74c98 in read () from /lib64/libc.so.6
#1  0x00007f1e5e4e5c80 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f1e5e4a0cb8 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f1e5e4a1150 in ?? () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f1e5e4a12bc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f1e666f27eb in QEventDispatcherGlib::processEvents (this=0x7f1e20026250, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#6  0x00007f1e66691d4a in QEventLoop::exec (this=this@entry=0x7f1e27a8cc90, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#7  0x00007f1e664a2657 in QThread::exec (this=this@entry=0x7f1e5000dcc0) at thread/qthread.cpp:536
#8  0x00007f1e626d4f35 in QQmlThreadPrivate::run (this=0x7f1e5000dcc0) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/ftw/qqmlthread.cpp:155
#9  0x00007f1e664a3b2c in QThreadPrivate::start (arg=0x7f1e5000dcc0) at thread/qthread_unix.cpp:342
#10 0x00007f1e61227569 in start_thread () from /lib64/libpthread.so.0
#11 0x00007f1e6cb839ef in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7f1e33aae700 (LWP 12105)):
#0  0x00007f1e5e4a06fc in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#1  0x00007f1e5e4a10db in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f1e5e4a12bc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f1e666f27eb in QEventDispatcherGlib::processEvents (this=0x7f1e2c028620, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f1e66691d4a in QEventLoop::exec (this=this@entry=0x7f1e33aadc90, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007f1e664a2657 in QThread::exec (this=this@entry=0x55ee3a5ad2d0) at thread/qthread.cpp:536
#6  0x00007f1e626d4f35 in QQmlThreadPrivate::run (this=0x55ee3a5ad2d0) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/ftw/qqmlthread.cpp:155
#7  0x00007f1e664a3b2c in QThreadPrivate::start (arg=0x55ee3a5ad2d0) at thread/qthread_unix.cpp:342
#8  0x00007f1e61227569 in start_thread () from /lib64/libpthread.so.0
#9  0x00007f1e6cb839ef in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7f1e38bc2700 (LWP 12060)):
#0  0x00007ffdd33c17b2 in clock_gettime ()
#1  0x00007f1e6cb912e6 in clock_gettime () from /lib64/libc.so.6
#2  0x00007f1e666f20f1 in qt_clock_gettime (ts=0x7f1e38bc1a10, clock=<optimized out>) at kernel/qelapsedtimer_unix.cpp:111
#3  do_gettime (frac=<synthetic pointer>, sec=<synthetic pointer>) at kernel/qelapsedtimer_unix.cpp:166
#4  qt_gettime () at kernel/qelapsedtimer_unix.cpp:175
#5  0x00007f1e666f0929 in QTimerInfoList::updateCurrentTime (this=this@entry=0x7f1e34004920) at kernel/qtimerinfo_unix.cpp:91
#6  0x00007f1e666f0f05 in QTimerInfoList::timerWait (this=0x7f1e34004920, tm=...) at kernel/qtimerinfo_unix.cpp:388
#7  0x00007f1e666f254e in timerSourcePrepareHelper (timeout=0x7f1e38bc1ae4, src=<optimized out>) at kernel/qeventdispatcher_glib.cpp:133
#8  timerSourcePrepare (source=<optimized out>, timeout=0x7f1e38bc1ae4) at kernel/qeventdispatcher_glib.cpp:166
#9  0x00007f1e5e4a0709 in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#10 0x00007f1e5e4a10db in ?? () from /usr/lib64/libglib-2.0.so.0
#11 0x00007f1e5e4a12bc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#12 0x00007f1e666f27eb in QEventDispatcherGlib::processEvents (this=0x7f1e34000b10, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#13 0x00007f1e66691d4a in QEventLoop::exec (this=this@entry=0x7f1e38bc1cb0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#14 0x00007f1e664a2657 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:536
#15 0x00007f1e664a3b2c in QThreadPrivate::start (arg=0x55ee39ea9600) at thread/qthread_unix.cpp:342
#16 0x00007f1e61227569 in start_thread () from /lib64/libpthread.so.0
#17 0x00007f1e6cb839ef in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f1e41bf6700 (LWP 12059)):
#0  0x00007f1e6122d8ad in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1e4696a83b in ?? () from /usr/lib64/dri/nouveau_dri.so
#2  0x00007f1e4696a547 in ?? () from /usr/lib64/dri/nouveau_dri.so
#3  0x00007f1e61227569 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f1e6cb839ef in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f1e4e230700 (LWP 12058)):
#0  0x00007f1e6cb74c98 in read () from /lib64/libc.so.6
#1  0x00007f1e5e4e5c80 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f1e5e4a0cb8 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f1e5e4a1150 in ?? () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f1e5e4a12bc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f1e666f27eb in QEventDispatcherGlib::processEvents (this=0x7f1e48000b10, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#6  0x00007f1e66691d4a in QEventLoop::exec (this=this@entry=0x7f1e4e22fc80, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#7  0x00007f1e664a2657 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:536
#8  0x00007f1e66b6e115 in ?? () from /usr/lib64/libQt5DBus.so.5
#9  0x00007f1e664a3b2c in QThreadPrivate::start (arg=0x7f1e66de5da0) at thread/qthread_unix.cpp:342
#10 0x00007f1e61227569 in start_thread () from /lib64/libpthread.so.0
#11 0x00007f1e6cb839ef in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f1e6d2f6d80 (LWP 12056)):
[KCrash Handler]
#6  0x00007f1e624dfade in QQmlData::wasDeleted (object=0x55ee3a66cdf0) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/include/QtQml/5.14.1/QtQml/private/../../../../../src/qml/qml/qqmldata_p.h:338
#7  QV4::QObjectWrapper::wrap (engine=engine@entry=0x7f1e4802aa50, object=0x55ee3a66cdf0) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/jsruntime/qv4qobjectwrapper_p.h:213
#8  0x00007f1e6255e286 in loadProperty (v4=0x7f1e4802aa50, object=0x55ee3a779f20, property=...) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:139
#9  0x00007f1e6255f0d7 in QV4::QObjectWrapper::lookupGetterImpl<QV4::QObjectWrapper::lookupGetter(QV4::Lookup*, QV4::ExecutionEngine*, const QV4::Value&)::<lambda()> > (useOriginalProperty=false, revertLookup=..., object=..., engine=<optimized out>, lookup=<optimized out>) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/jsruntime/qv4qobjectwrapper_p.h:262
#10 QV4::QObjectWrapper::lookupGetter (lookup=<optimized out>, engine=<optimized out>, object=...) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:894
#11 0x00007f1e6257cf59 in QV4::Moth::VME::interpret (frame=0x7ffdd339e960, engine=0x7f1e4802aa50, code=0x7f1e4c00b2c4 ":\v\030\006\002") at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/jsruntime/qv4vme_moth.cpp:638
#12 0x00007f1e62581d46 in QV4::Moth::VME::exec (frame=frame@entry=0x7ffdd339e960, engine=engine@entry=0x7f1e4802aa50) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/jsruntime/qv4vme_moth.cpp:463
#13 0x00007f1e6251493a in QV4::Function::call (this=this@entry=0x55ee3a715780, thisObject=thisObject@entry=0x7f1e308164e8, argv=argv@entry=0x7f1e30816500, argc=<optimized out>, context=<optimized out>) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/jsruntime/qv4function.cpp:69
#14 0x00007f1e62691d47 in QQmlJavaScriptExpression::evaluate (this=this@entry=0x55ee3a77d9b0, callData=callData@entry=0x7f1e308164d0, isUndefined=isUndefined@entry=0x7ffdd339eb6f) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/qqmljavascriptexpression.cpp:211
#15 0x00007f1e62697c8e in QQmlBinding::evaluate (this=this@entry=0x55ee3a77d9b0, isUndefined=isUndefined@entry=0x7ffdd339eb6f) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/qqmlbinding.cpp:210
#16 0x00007f1e6269c2e5 in QQmlNonbindingBinding::doUpdate (this=0x55ee3a77d9b0, watcher=..., flags=..., scope=...) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/qqmlbinding.cpp:246
#17 0x00007f1e62698f22 in QQmlBinding::update (this=0x55ee3a77d9b0, flags=...) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/qqmlbinding.cpp:186
#18 0x00007f1e626385ff in QQmlContextData::refreshExpressionsRecursive (this=<optimized out>, expression=0x55ee3a77d9b0) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/qqmlcontext.cpp:722
#19 0x00007f1e62638657 in QQmlContextData::refreshExpressionsRecursive (this=<optimized out>, expression=0x55ee3a760b50) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/qqmlcontext.cpp:719
#20 0x00007f1e62638657 in QQmlContextData::refreshExpressionsRecursive (this=this@entry=0x55ee3a7e6fb0, expression=0x55ee3a760cb0) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/qqmlcontext.cpp:719
#21 0x00007f1e62638acb in QQmlContextData::refreshExpressionsRecursive (this=0x55ee3a7e6fb0, isGlobal=isGlobal@entry=false) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/qqmlcontext.cpp:751
#22 0x00007f1e62638b74 in QQmlContextData::refreshExpressionsRecursive (this=0x55ee3a7e65c0, isGlobal=isGlobal@entry=false) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/qqmlcontext.cpp:741
#23 0x00007f1e62638bfb in QQmlContextData::refreshExpressionsRecursive (this=0x55ee3a756720, isGlobal=<optimized out>) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/qqmlcontext.cpp:761
#24 0x00007f1e62638ce3 in QQmlContextData::refreshExpressions (this=this@entry=0x55ee3a5e6ff0) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/qqmlcontext.cpp:788
#25 0x00007f1e6261e5c8 in QQmlEngine::retranslate (this=<optimized out>) at /usr/src/debug/libqt5-qtdeclarative-5.14.1-lp151.1.1.x86_64/src/qml/qml/qqmlengine.cpp:1434
#26 0x00007f1e666c659b in QObject::event (this=0x55ee3a53dca0, e=0x55ee3a4ee9c0) at kernel/qobject.cpp:1339
#27 0x00007f1e67a67b5c in QApplicationPrivate::notify_helper (this=this@entry=0x55ee399d89c0, receiver=receiver@entry=0x55ee3a53dca0, e=e@entry=0x55ee3a4ee9c0) at kernel/qapplication.cpp:3684
#28 0x00007f1e67a6ed60 in QApplication::notify (this=0x7ffdd339f460, receiver=0x55ee3a53dca0, e=0x55ee3a4ee9c0) at kernel/qapplication.cpp:3430
#29 0x00007f1e666934c8 in QCoreApplication::notifyInternal2 (receiver=0x55ee3a53dca0, event=0x55ee3a4ee9c0) at kernel/qcoreapplication.cpp:1092
#30 0x00007f1e6669369e in QCoreApplication::sendEvent (receiver=receiver@entry=0x55ee3a53dca0, event=event@entry=0x55ee3a4ee9c0) at kernel/qcoreapplication.cpp:1487
#31 0x00007f1e66696141 in QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x55ee399acc60) at kernel/qcoreapplication.cpp:1832
#32 0x00007f1e666966d8 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1691
#33 0x00007f1e666f3123 in postEventSourceDispatch (s=0x55ee39a4a950) at kernel/qeventdispatcher_glib.cpp:277
#34 0x00007f1e5e4a0e87 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#35 0x00007f1e5e4a1230 in ?? () from /usr/lib64/libglib-2.0.so.0
#36 0x00007f1e5e4a12bc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#37 0x00007f1e666f27cc in QEventDispatcherGlib::processEvents (this=0x55ee39a4b490, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#38 0x00007f1e66691d4a in QEventLoop::exec (this=this@entry=0x7ffdd339f370, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#39 0x00007f1e6669b4c0 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1400
#40 0x00007f1e6ce8decf in kdemain (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/dolphin-19.12.3-lp151.203.2.x86_64/src/main.cpp:171
#41 0x00007f1e6caabf8a in __libc_start_main () from /lib64/libc.so.6
#42 0x000055ee3947180a in _start () at ../sysdeps/x86_64/start.S:120
[Inferior 1 (process 12056) detached]

Possible duplicates by query: bug 372473, bug 365234, bug 365233.

Reported using DrKonqi
Comment 1 Elvis Angelaccio 2020-03-29 10:32:39 UTC
Seems to be a crash in the purpose plugin.
Comment 2 Nicolas Fella 2020-07-10 11:45:48 UTC
*** Bug 420154 has been marked as a duplicate of this bug. ***
Comment 3 Nicolas Fella 2020-08-07 22:33:39 UTC
*** Bug 425119 has been marked as a duplicate of this bug. ***
Comment 4 Nicolas Fella 2020-08-19 22:59:52 UTC
*** Bug 425565 has been marked as a duplicate of this bug. ***
Comment 5 Bug Janitor Service 2020-08-25 23:02:30 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/purpose/-/merge_requests/9
Comment 6 Nicolas Fella 2020-08-28 10:37:24 UTC
Git commit b7e6e9afa5db0f789f9ef3c831eba5e398764371 by Nicolas Fella.
Committed on 28/08/2020 at 10:37.
Pushed by nicolasfella into branch 'master'.

Rework job view handling

The job view handling is a large chunk of quite imperative QML code that is hard to maintain. It also seems to suffer from QML/C++ ownership issues that result in crashes.

This patch introduces a new JobView component that does the job visualization. Internally it uses a new JobController C++ class that is responsible for tracking the job state.

JobDialog and AlternativesView are ported to use it.

Visually the end result is similar, except for the running job aspect. Instead of the de-facto not working progress bar a BusyIndicator is used.

M  +1    -2    README.md
M  +1    -0    src/CMakeLists.txt
M  +1    -1    src/configuration.h
A  +99   -0    src/jobcontroller.cpp     [License: LGPL(v2.1+)]
A  +72   -0    src/jobcontroller.h     [License: LGPL(v2.1+)]
M  +12   -57   src/quick/AlternativesView.qml
A  +111  -0    src/quick/JobView.qml     [License: LGPL(v2.1+)]
D  +0    -48   src/quick/PurposeWizard.qml
D  +0    -54   src/quick/RunningJob.qml
M  +3    -2    src/quick/purposequickplugin.cpp
M  +1    -2    src/quick/qmlfiles.qrc
M  +16   -78   src/widgets/JobDialog.qml
M  +6    -4    src/widgets/menu.cpp

https://invent.kde.org/frameworks/purpose/commit/b7e6e9afa5db0f789f9ef3c831eba5e398764371