Bug 274592

Summary: Muon doesn't disable its toolbar while installing packages, making it prone to crashes
Product: [Unmaintained] muon Reporter: Alvaro Manuel Recio Perez <amrecio>
Component: installerAssignee: Jonathan Thomas <echidnaman>
Status: RESOLVED FIXED    
Severity: crash CC: jjbihn, Sroka.Steven
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Alvaro Manuel Recio Perez 2011-05-31 12:39:46 UTC
Application: muon (1.1.80 "Caustic Carrionite")
KDE Platform Version: 4.6.3 (4.6.3)
Qt Version: 4.7.2
Operating System: Linux 2.6.38-8-generic x86_64
Distribution: Ubuntu 11.04

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

While a package was being installed in Muon, its toolbar is not disabled, making it possible to click "Preview changes". Then, pressing "Back", makes Muon crash.

The crash can be reproduced every time.

-- Backtrace:
Application: Gestor de paquetes Muon (muon), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fdc62573780 (LWP 13660))]

Thread 3 (Thread 0x7fdc4c581700 (LWP 13663)):
#0  0x00007fdc5e960f03 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fdc5a88d104 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fdc5a88d639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fdc60438446 in QEventDispatcherGlib::processEvents (this=0x1c60130, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007fdc6040c882 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007fdc6040cabc in QEventLoop::exec (this=0x7fdc4c580dd0, flags=...) at kernel/qeventloop.cpp:201
#6  0x00007fdc60323924 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:492
#7  0x00007fdc603eec2f in QInotifyFileSystemWatcherEngine::run (this=0x1c5f650) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007fdc60326175 in QThreadPrivate::start (arg=0x1c5f650) at thread/qthread_unix.cpp:320
#9  0x00007fdc5c2dad8c in start_thread (arg=0x7fdc4c581700) at pthread_create.c:304
#10 0x00007fdc5e96e04d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fdc49683700 (LWP 13800)):
[KCrash Handler]
#6  0x00007fdc61a7620c in Name (this=0x18a5c20) at /usr/include/apt-pkg/cacheiterators.h:156
#7  QApt::Package::latin1Name (this=0x18a5c20) at /build/buildd/qapt-1.1.80/src/package.cpp:229
#8  0x00007fdc6217fbb9 in packageNameLessThan (p1=0x22d9ae0, p2=<value optimized out>) at /build/buildd/muon-1.1.80/libmuon/PackageModel/PackageWidget.cpp:61
#9  0x00007fdc621842c1 in QAlgorithmsPrivate::qSortHelper<QList<QApt::Package*>::iterator, QApt::Package*, bool (*)(QApt::Package*, QApt::Package*)> (start=..., end=..., t=@0x2537ff8, lessThan=0x7fdc6217fba0 <packageNameLessThan(QApt::Package*, QApt::Package*)>) at /usr/include/qt4/QtCore/qalgorithms.h:351
#10 0x00007fdc621826d7 in qSort<QList<QApt::Package*>::iterator, bool (*)(QApt::Package*, QApt::Package*)> (list=...) at /usr/include/qt4/QtCore/qalgorithms.h:187
#11 sortPackages (list=...) at /build/buildd/muon-1.1.80/libmuon/PackageModel/PackageWidget.cpp:66
#12 0x00007fdc6218444b in QtConcurrent::StoredFunctorCall1<QList<QApt::Package*>, QList<QApt::Package*> (*)(QList<QApt::Package*>), QList<QApt::Package*> >::runFunctor (this=0x288e430) at /usr/include/qt4/QtCore/qtconcurrentstoredfunctioncall.h:274
#13 0x00007fdc621845e7 in QtConcurrent::RunFunctionTask<QList<QApt::Package*> >::run (this=0x288e430) at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:103
#14 0x00007fdc6031b188 in QThreadPoolThread::run (this=0x1f83340) at concurrent/qthreadpool.cpp:106
#15 0x00007fdc60326175 in QThreadPrivate::start (arg=0x1f83340) at thread/qthread_unix.cpp:320
#16 0x00007fdc5c2dad8c in start_thread (arg=0x7fdc49683700) at pthread_create.c:304
#17 0x00007fdc5e96e04d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#18 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fdc62573780 (LWP 13660)):
#0  0x00007fdc5e960f03 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fdc5834a512 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007fdc5834aa5f in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fdc5834aae4 in xcb_writev () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#4  0x00007fdc5d4782a7 in _XSend () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#5  0x00007fdc5d4787fb in _XReply () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#6  0x00007fdc5d46dc30 in XQueryPointer () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#7  0x00007fdc5f856c3f in QCursor::pos () at kernel/qcursor_x11.cpp:159
#8  0x00007fdc5f7cfdd5 in QApplicationPrivate::sendSyntheticEnterLeave (this=<value optimized out>, widget=0x1b31fb0) at kernel/qapplication.cpp:3188
#9  0x00007fdc5f823afa in QWidget::setVisible (this=0x1b31fb0, visible=<value optimized out>) at kernel/qwidget.cpp:7664
#10 0x00007fdc5f804229 in show (this=0x1667620, index=3) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:487
#11 QStackedLayout::setCurrentIndex (this=0x1667620, index=3) at kernel/qstackedlayout.cpp:311
#12 0x000000000040b3fa in MainWindow::previewChanges (this=0x16f59a0) at /build/buildd/muon-1.1.80/muon/MainWindow.cpp:374
#13 0x000000000040da56 in MainWindow::qt_metacall (this=0x16f59a0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff4e4d2040) at /build/buildd/muon-1.1.80/obj-x86_64-linux-gnu/muon/MainWindow.moc:124
#14 0x00007fdc604225f8 in QMetaObject::activate (sender=0x1ac12f0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff4e4d2040) at kernel/qobject.cpp:3287
#15 0x00007fdc5f7c8112 in QAction::triggered (this=<value optimized out>, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#16 0x00007fdc5f7c82ff in QAction::activate (this=0x1ac12f0, event=<value optimized out>) at kernel/qaction.cpp:1257
#17 0x00007fdc5fb8ed7a in QAbstractButtonPrivate::click (this=0x1ad85f0) at widgets/qabstractbutton.cpp:528
#18 0x00007fdc5fb8f02c in QAbstractButton::mouseReleaseEvent (this=0x1afe8f0, e=0x7fff4e4d2990) at widgets/qabstractbutton.cpp:1121
#19 0x00007fdc5fc4b2ca in QToolButton::mouseReleaseEvent (this=<value optimized out>, e=<value optimized out>) at widgets/qtoolbutton.cpp:721
#20 0x00007fdc5f81fcb8 in QWidget::event (this=0x1afe8f0, event=0x7fff4e4d2990) at kernel/qwidget.cpp:8259
#21 0x00007fdc5f7ce9e4 in QApplicationPrivate::notify_helper (this=0x15f6c00, receiver=0x1afe8f0, e=0x7fff4e4d2990) at kernel/qapplication.cpp:4462
#22 0x00007fdc5f7d3db3 in QApplication::notify (this=<value optimized out>, receiver=0x1afe8f0, e=0x7fff4e4d2990) at kernel/qapplication.cpp:4023
#23 0x00007fdc610c6196 in KApplication::notify (this=0x7fff4e4d5880, receiver=0x1afe8f0, event=0x7fff4e4d2990) at ../../kdeui/kernel/kapplication.cpp:311
#24 0x00007fdc6040d49c in QCoreApplication::notifyInternal (this=0x7fff4e4d5880, receiver=0x1afe8f0, event=0x7fff4e4d2990) at kernel/qcoreapplication.cpp:731
#25 0x00007fdc5f7cfa0d in sendEvent (receiver=0x1afe8f0, event=0x7fff4e4d2990, alienWidget=0x1afe8f0, nativeWidget=0x16f59a0, buttonDown=0x7fdc602af218, lastMouseReceiver=..., spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#26 QApplicationPrivate::sendMouseEvent (receiver=0x1afe8f0, event=0x7fff4e4d2990, alienWidget=0x1afe8f0, nativeWidget=0x16f59a0, buttonDown=0x7fdc602af218, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3122
#27 0x00007fdc5f84f600 in QETWidget::translateMouseEvent (this=0x16f59a0, event=<value optimized out>) at kernel/qapplication_x11.cpp:4556
#28 0x00007fdc5f84e04a in QApplication::x11ProcessEvent (this=0x7fff4e4d5880, event=0x7fff4e4d32e0) at kernel/qapplication_x11.cpp:3678
#29 0x00007fdc5f876162 in x11EventSourceDispatch (s=0x15f4d90, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#30 0x00007fdc5a88cbcd in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fdc5a88d3a8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fdc5a88d639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007fdc604383ef in QEventDispatcherGlib::processEvents (this=0x159e340, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#34 0x00007fdc5f875dfe in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#35 0x00007fdc6041103f in QCoreApplication::processEvents (flags=...) at kernel/qcoreapplication.cpp:923
#36 0x00007fdc61a75203 in QApt::CacheBuildProgress::Update (this=<value optimized out>) at /build/buildd/qapt-1.1.80/src/cache.cpp:36
#37 0x00007fdc5cb48577 in OpProgress::OverallProgress(unsigned long, unsigned long, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libapt-pkg.so.4.10
#38 0x00007fdc5cb90c5e in ?? () from /usr/lib/libapt-pkg.so.4.10
#39 0x00007fdc5cb96d0a in pkgCacheGenerator::MakeStatusCache(pkgSourceList&, OpProgress*, MMap**, bool) () from /usr/lib/libapt-pkg.so.4.10
#40 0x00007fdc5cb8b0f2 in pkgCacheFile::BuildCaches(OpProgress*, bool) () from /usr/lib/libapt-pkg.so.4.10
#41 0x00007fdc5cb8b514 in pkgCacheFile::Open(OpProgress*, bool) () from /usr/lib/libapt-pkg.so.4.10
#42 0x00007fdc61a7508a in QApt::Cache::open (this=<value optimized out>) at /build/buildd/qapt-1.1.80/src/cache.cpp:85
#43 0x00007fdc61a70d91 in QApt::Backend::reloadCache (this=0x1721500) at /build/buildd/qapt-1.1.80/src/backend.cpp:166
#44 0x00007fdc6218381d in PackageWidget::reload (this=0x165d0f0) at /build/buildd/muon-1.1.80/libmuon/PackageModel/PackageWidget.cpp:254
#45 0x000000000040e429 in ManagerWidget::reload (this=0x165d0f0) at /build/buildd/muon-1.1.80/muon/ManagerWidget.cpp:61
#46 0x000000000040ba78 in MainWindow::reload (this=0x16f59a0) at /build/buildd/muon-1.1.80/muon/MainWindow.cpp:435
#47 0x000000000040dbfc in MainWindow::workerEvent (this=0x16f59a0, event=QApt::CommitChangesFinished) at /build/buildd/muon-1.1.80/muon/MainWindow.cpp:319
#48 0x000000000040da1b in MainWindow::qt_metacall (this=0x16f59a0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff4e4d4850) at /build/buildd/muon-1.1.80/obj-x86_64-linux-gnu/muon/MainWindow.moc:122
#49 0x00007fdc604225f8 in QMetaObject::activate (sender=0x1721500, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff4e4d4850) at kernel/qobject.cpp:3287
#50 0x00007fdc61a8b6e1 in QApt::Backend::workerEvent (this=<value optimized out>, _t1=QApt::CommitChangesFinished) at /build/buildd/qapt-1.1.80/obj-x86_64-linux-gnu/src/moc_backend.cxx:244
#51 0x00007fdc61a8b93c in QApt::Backend::qt_metacall (this=0x1721500, _c=QMetaObject::InvokeMetaMethod, _id=40, _a=0x7fff4e4d4960) at /build/buildd/qapt-1.1.80/obj-x86_64-linux-gnu/src/moc_backend.cxx:204
#52 0x00007fdc604225f8 in QMetaObject::activate (sender=0x1b19240, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff4e4d4960) at kernel/qobject.cpp:3287
#53 0x00007fdc61a8c301 in OrgKubuntuQaptworkerInterface::workerEvent (this=<value optimized out>, _t1=6) at /build/buildd/qapt-1.1.80/obj-x86_64-linux-gnu/src/workerdbus.moc:225
#54 0x00007fdc61a8c715 in OrgKubuntuQaptworkerInterface::qt_metacall (this=0x1b19240, _c=QMetaObject::InvokeMetaMethod, _id=8, _a=0x7fff4e4d4e30) at /build/buildd/qapt-1.1.80/obj-x86_64-linux-gnu/src/workerdbus.moc:130
#55 0x00007fdc607629fa in QDBusConnectionPrivate::deliverCall (this=0x1a81e50, object=0x1b19240, msg=..., metaTypes=..., slotIdx=13) at qdbusintegrator.cpp:942
#56 0x00007fdc6076ce4f in QDBusCallDeliveryEvent::placeMetaCall (this=<value optimized out>, object=<value optimized out>) at qdbusintegrator_p.h:103
#57 0x00007fdc6042149a in QObject::event (this=0x1b19240, e=<value optimized out>) at kernel/qobject.cpp:1226
#58 0x00007fdc5f7ce9e4 in QApplicationPrivate::notify_helper (this=0x15f6c00, receiver=0x1b19240, e=0x2467770) at kernel/qapplication.cpp:4462
#59 0x00007fdc5f7d33aa in QApplication::notify (this=<value optimized out>, receiver=0x1b19240, e=0x2467770) at kernel/qapplication.cpp:4341
#60 0x00007fdc610c6196 in KApplication::notify (this=0x7fff4e4d5880, receiver=0x1b19240, event=0x2467770) at ../../kdeui/kernel/kapplication.cpp:311
#61 0x00007fdc6040d49c in QCoreApplication::notifyInternal (this=0x7fff4e4d5880, receiver=0x1b19240, event=0x2467770) at kernel/qcoreapplication.cpp:731
#62 0x00007fdc60410c25 in sendEvent (receiver=0x0, event_type=0, data=0x159eb60) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#63 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x159eb60) at kernel/qcoreapplication.cpp:1372
#64 0x00007fdc60438253 in sendPostedEvents (s=0x15f3d60) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#65 postEventSourceDispatch (s=0x15f3d60) at kernel/qeventdispatcher_glib.cpp:277
#66 0x00007fdc5a88cbcd in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#67 0x00007fdc5a88d3a8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#68 0x00007fdc5a88d639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#69 0x00007fdc604383ef in QEventDispatcherGlib::processEvents (this=0x159e340, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#70 0x00007fdc5f875dfe in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#71 0x00007fdc6040c882 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#72 0x00007fdc6040cabc in QEventLoop::exec (this=0x7fff4e4d5810, flags=...) at kernel/qeventloop.cpp:201
#73 0x00007fdc60410ecb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#74 0x000000000040b01e in main (argc=5, argv=<value optimized out>) at /build/buildd/muon-1.1.80/muon/main.cpp:55

Reported using DrKonqi
Comment 1 Alvaro Manuel Recio Perez 2011-05-31 12:43:53 UTC
I've done more tests and now I'm not sure how to trigger the crash. I succeed sometimes but not always.
Comment 2 Jonathan Thomas 2011-05-31 18:01:14 UTC
Bleh, you're right. That's a regression since 1.1.65. I'll fix it.
Comment 3 Jonathan Thomas 2011-05-31 18:08:08 UTC
Git commit 03c1c99bc88a749972facf6d9d91fe594d39f516 by Jonathan Thomas.
Committed on 31/05/2011 at 18:07.
Pushed by jmthomas into branch 'master'.

Don't re-enable the toolbar once package downloading is finished.

BUG: 274592

M  +1    -1    muon/MainWindow.cpp     

http://commits.kde.org/muon/03c1c99bc88a749972facf6d9d91fe594d39f516
Comment 4 Jonathan Thomas 2011-10-22 23:11:30 UTC
*** Bug 284275 has been marked as a duplicate of this bug. ***
Comment 5 Jonathan Thomas 2012-02-22 01:12:29 UTC
Should be really fixed in 1.2.3. The issue was with commit errors not signaling a commit end event.
Comment 6 Jekyll Wu 2012-02-23 10:46:01 UTC
*** Bug 294659 has been marked as a duplicate of this bug. ***