Bug 396356 - Discover froze when I clicked "update all" button immediately after cancel the password dialog to start update proccess
Summary: Discover froze when I clicked "update all" button immediately after cancel th...
Status: RESOLVED FIXED
Alias: None
Product: Discover
Classification: Applications
Component: discover (show other bugs)
Version: unspecified
Platform: Neon Linux
: NOR normal
Target Milestone: ---
Assignee: Aleix Pol
URL:
Keywords:
: 396874 (view as bug list)
Depends on:
Blocks:
 
Reported: 2018-07-10 04:31 UTC by Patrick Silva
Modified: 2018-10-25 14:15 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Silva 2018-07-10 04:31:03 UTC
On neon dev unstable...
I opened discover, clciked "update" in the sidebar, clicked "update all" button.
Discover asked for my password, I cancelled the password dialog and clicked
in "update all" button again immediately. So discover froze.

#0  0x00007f1b131c04d9 in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f1b13bb3355 in QBasicMutex::lockInternal() (val3=0, addr2=0x0, val2=0, val=3, op=0, addr=<optimized out>) at thread/qfutex_p.h:92
#2  0x00007f1b13bb3355 in QBasicMutex::lockInternal() (expectedValue=<optimized out>, futex=...)
    at thread/qfutex_p.h:107
#3  0x00007f1b13bb3355 in QBasicMutex::lockInternal() (timeout=-1, elapsedTimer=0x0, d_ptr=...)
    at thread/qmutex_linux.cpp:145
#4  0x00007f1b13bb3355 in QBasicMutex::lockInternal() (this=0x7f1b1420ce40 <_q_ObjectMutexPool+992>)
    at thread/qmutex_linux.cpp:162
#5  0x00007f1b13bb33b7 in QMutex::lock() (this=this@entry=0x7f1b1420ce40 <_q_ObjectMutexPool+992>)
    at thread/qmutex.cpp:229
#6  0x00007f1b13db461d in QMetaObjectPrivate::disconnect(QObject const*, int, QMetaObject const*, QObject const*, int, void**, QMetaObjectPrivate::DisconnectType) (m=<optimized out>, this=<synthetic pointer>) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:206
#7  0x00007f1b13db461d in QMetaObjectPrivate::disconnect(QObject const*, int, QMetaObject const*, QObject const*, int, void**, QMetaObjectPrivate::DisconnectType) (sender=sender@entry=0x3943730, signal_index=signal_index@entry=10, smeta=0x7f1acc909960 <OrgFreedesktopPackageKitTransactionInterface::staticMetaObject>, receiver=receiver@entry=0x3d67990, method_index=method_index@entry=39, disconnectType=disconnectType@entry=QMetaObjectPrivate::DisconnectAll, slot=0x0) at kernel/qobject.cpp:3422
#8  0x00007f1b13db5114 in QObject::disconnect(QObject const*, char const*, QObject const*, char const*) (sender=0x3943730, signal=0x3873679 "Finished(uint,uint)", receiver=0x3d67990, method=0x256d799 "finished(uint,uint)") at kernel/qobject.cpp:3022
#9  0x00007f1acc6e44ab in PackageKit::TransactionPrivate::setupSignal(QString const&, bool) ()
    at /usr/lib/x86_64-linux-gnu/libpackagekitqt5.so.0
---Type <return> to continue, or q <return> to quit---
#10 0x00007f1acc6e7af9 in PackageKit::Transaction::disconnectNotify(char const*) ()
    at /usr/lib/x86_64-linux-gnu/libpackagekitqt5.so.0
#11 0x00007f1acc6e3f0a in PackageKit::Transaction::disconnectNotify(QMetaMethod const&) ()
    at /usr/lib/x86_64-linux-gnu/libpackagekitqt5.so.0
#12 0x00007f1b13db8d83 in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>)
    at kernel/qobject.cpp:988
#13 0x00007f1acc94351b in TransactionSet::~TransactionSet() (this=0x3933130, __in_chrg=<optimized out>) at /workspace/build/obj-x86_64-linux-gnu/libdiscover/backends/PackageKitBackend/../../../../libdiscover/backends/PackageKitBackend/TransactionSet.h:28
#14 0x00007f1acc94351b in TransactionSet::~TransactionSet() (this=0x3933130, __in_chrg=<optimized out>) at /workspace/build/obj-x86_64-linux-gnu/libdiscover/backends/PackageKitBackend/../../../../libdiscover/backends/PackageKitBackend/TransactionSet.h:28
#15 0x00007f1b13db1ff0 in QObject::event(QEvent*) (this=0x3933130, e=<optimized out>)
    at kernel/qobject.cpp:1242
#16 0x00007f1b153dd39c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007f1b153e4ab0 in QApplication::notify(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007f1b13d84228 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x3933130, event=event@entry=0x39da8c0) at kernel/qcoreapplication.cpp:1048
#19 0x00007f1b13d86e2e in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (event=0x39da8c0, receiver=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#20 0x00007f1b13d86e2e in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (recei---Type <return> to continue, or q <return> to quit---
ver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x208c9f0)
    at kernel/qcoreapplication.cpp:1745
#21 0x00007f1b13d872a8 in QCoreApplication::sendPostedEvents(QObject*, int) (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1599
#22 0x00007f1b13ddba93 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x20c2180)
    at kernel/qeventdispatcher_glib.cpp:276
#23 0x00007f1b0ddfa197 in g_main_context_dispatch (context=0x20d37d0)
    at /build/glib2.0-prJhLS/glib2.0-2.48.2/./glib/gmain.c:3154
#24 0x00007f1b0ddfa197 in g_main_context_dispatch (context=context@entry=0x20d37d0)
    at /build/glib2.0-prJhLS/glib2.0-2.48.2/./glib/gmain.c:3769
#25 0x00007f1b0ddfa3f0 in g_main_context_iterate (context=context@entry=0x20d37d0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at /build/glib2.0-prJhLS/glib2.0-2.48.2/./glib/gmain.c:3840
#26 0x00007f1b0ddfa49c in g_main_context_iteration (context=0x20d37d0, may_block=may_block@entry=1)
    at /build/glib2.0-prJhLS/glib2.0-2.48.2/./glib/gmain.c:3901
#27 0x00007f1b13ddb09f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x20c9510, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#28 0x00007f1b07c1f421 in QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5WaylandClient.so.5
#29 0x00007f1b13d825ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd9b0ae570, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214
#30 0x00007f1b13d8b6c4 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1336
#31 0x00000000004133ff in main(int, char**) (argc=3, argv=<optimized out>)
    at /workspace/build/discover/main.cpp:156
Comment 1 Patrick Silva 2018-07-26 18:49:53 UTC
*** Bug 396874 has been marked as a duplicate of this bug. ***
Comment 2 Aleix Pol 2018-10-23 14:28:54 UTC
Do you know which PackageKitQt version this was?
It would also be interesting if you could get the backtrace for all threads when this happens.

The gdb command is:
thread apply all where
Comment 3 Patrick Silva 2018-10-25 12:45:36 UTC
I do not remember the PackageKitQt version.
And the problem is no longer reproducible on neon dev unstable.