Bug 279345

Summary: Muon Software Center crash after package list update
Product: [Applications] muon Reporter: Scott Kitterman <kde>
Component: installerAssignee: Jonathan Thomas <echidnaman>
Status: RESOLVED FIXED    
Severity: crash CC: ziltoid
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In: 1.2.0

Description Scott Kitterman 2011-08-04 04:50:59 UTC
Application: muon-installer (1.1.90 "Caustic Carrionite")
KDE Platform Version: 4.7.00 (4.7.0)
Qt Version: 4.7.3
Operating System: Linux 3.0.0-7-generic i686
Distribution: Ubuntu oneiric (development branch)

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

I had just finished changing software sources and updating (apt-get update equivalent) and I hit close to close MSC before I'd ack'ed that the update was finished.  Not sure if that was directly related or not.

-- Backtrace:
Application: Muon Software Center (muon-installer), signal: Segmentation fault
[Current thread is 1 (Thread 0xb77af710 (LWP 23021))]

Thread 2 (Thread 0xb5a04b70 (LWP 23025)):
#0  0x00c38d31 in clock_gettime () from /lib/i386-linux-gnu/librt.so.1
#1  0x009c41f5 in do_gettime () at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0x00a96b86 in QTimerInfoList::updateCurrentTime (this=0x902d44c) at kernel/qeventdispatcher_unix.cpp:339
#4  0x00a96eda in QTimerInfoList::timerWait (this=0x902d44c, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0x00a95723 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xb5a0412c) at kernel/qeventdispatcher_glib.cpp:136
#6  0x00a957bd in timerSourcePrepare (source=0x902d418, timeout=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#7  0x0508943c in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#8  0x0508a1f7 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0x0508a7ea in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0x00a96207 in QEventDispatcherGlib::processEvents (this=0x8f655f8, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#11 0x00a66f5d in QEventLoop::processEvents (this=0xb5a042b0, flags=...) at kernel/qeventloop.cpp:149
#12 0x00a671a1 in QEventLoop::exec (this=0xb5a042b0, flags=...) at kernel/qeventloop.cpp:201
#13 0x0096a3db in QThread::exec (this=0x8f670b8) at thread/qthread.cpp:492
#14 0x00a47bad in QInotifyFileSystemWatcherEngine::run (this=0x8f670b8) at io/qfilesystemwatcher_inotify.cpp:248
#15 0x0096d283 in QThreadPrivate::start (arg=0x8f670b8) at thread/qthread_unix.cpp:320
#16 0x00ed4e99 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#17 0x07cce6de in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 1 (Thread 0xb77af710 (LWP 23021)):
[KCrash Handler]
#7  0x003eccb1 in QApt::Backend::toInstallCount (this=0x8f2be88) at /build/buildd/qapt-1.1.90/src/backend.cpp:408
#8  0x003ece76 in QApt::Backend::areChangesMarked (this=0x8f2be88) at /build/buildd/qapt-1.1.90/src/backend.cpp:591
#9  0x0048a62b in MuonMainWindow::queryExit (this=0x8ec8c50) at /build/buildd/muon-1.1.90/libmuon/MuonMainWindow.cpp:96
#10 0x00781a2f in KMainWindow::closeEvent (this=0x8ec8c50, e=0xbfb76a78) at ../../kdeui/widgets/kmainwindow.cpp:604
#11 0x0164ca07 in QWidget::event (this=0x8ec8c50, event=0xbfb76a78) at kernel/qwidget.cpp:8417
#12 0x01a69f0c in QMainWindow::event (this=0x8ec8c50, event=0xbfb76a78) at widgets/qmainwindow.cpp:1480
#13 0x007801c4 in KMainWindow::event (this=0x8ec8c50, ev=0xbfb76a78) at ../../kdeui/widgets/kmainwindow.cpp:1100
#14 0x007c8352 in KXmlGuiWindow::event (this=0x8ec8c50, ev=0xbfb76a78) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:126
#15 0x015f2374 in notify_helper (this=0x8de6228, receiver=0x8ec8c50, e=0xbfb76a78) at kernel/qapplication.cpp:4467
#16 QApplicationPrivate::notify_helper (this=0x8de6228, receiver=0x8ec8c50, e=0xbfb76a78) at kernel/qapplication.cpp:4439
#17 0x015f77c8 in QApplication::notify (this=0x8de6228, receiver=0x8ec8c50, e=0xbfb76a78) at kernel/qapplication.cpp:4432
#18 0x006a53d1 in KApplication::notify (this=0xbfb79210, receiver=0x8ec8c50, event=0xbfb76a78) at ../../kdeui/kernel/kapplication.cpp:311
#19 0x00a67f1e in QCoreApplication::notifyInternal (this=0xbfb79210, receiver=0x8ec8c50, event=0xbfb76a78) at kernel/qcoreapplication.cpp:731
#20 0x01646fe8 in sendEvent (this=0x8ecb6e0, mode=QWidgetPrivate::CloseWithSpontaneousEvent) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#21 QWidgetPrivate::close_helper (this=0x8ecb6e0, mode=QWidgetPrivate::CloseWithSpontaneousEvent) at kernel/qwidget.cpp:7825
#22 0x016801a3 in translateCloseEvent (this=0xbfb79210, w=0x8ec8c50, event=0xbfb76ddc, passive_only=false) at kernel/qapplication_x11.cpp:5665
#23 QApplication::x11ClientMessage (this=0xbfb79210, w=0x8ec8c50, event=0xbfb76ddc, passive_only=false) at kernel/qapplication_x11.cpp:3143
#24 0x0167e1ec in QApplication::x11ProcessEvent (this=0xbfb79210, event=0xbfb76ddc) at kernel/qapplication_x11.cpp:3823
#25 0x016aa21c in x11EventSourceDispatch (s=0x8de2ae8, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#26 0x05089e1f in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#27 0x0508a550 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#28 0x0508a7ea in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#29 0x00a961aa in QEventDispatcherGlib::processEvents (this=0x8dc3228, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#30 0x016a9e0a in QGuiEventDispatcherGlib::processEvents (this=0x8dc3228, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#31 0x00a6bae3 in QCoreApplication::processEvents (flags=...) at kernel/qcoreapplication.cpp:923
#32 0x003f9e33 in QApt::CacheBuildProgress::Update (this=0x8f5af5c) at /build/buildd/qapt-1.1.90/src/cache.cpp:36
#33 0x027f0b46 in OpProgress::Progress(unsigned long) () from /usr/lib/libapt-pkg.so.4.10
#34 0x028405c8 in pkgCacheGenerator::MergeList(pkgCacheGenerator::ListParser&, pkgCache::VerIterator*) () from /usr/lib/libapt-pkg.so.4.10
#35 0x0289df29 in debPackagesIndex::Merge(pkgCacheGenerator&, OpProgress*) const () from /usr/lib/libapt-pkg.so.4.10
#36 0x0283d95e in ?? () from /usr/lib/libapt-pkg.so.4.10
#37 0x02843673 in pkgCacheGenerator::MakeStatusCache(pkgSourceList&, OpProgress*, MMap**, bool) () from /usr/lib/libapt-pkg.so.4.10
#38 0x02836d68 in pkgCacheFile::BuildCaches(OpProgress*, bool) () from /usr/lib/libapt-pkg.so.4.10
#39 0x028371fd in pkgCacheFile::Open(OpProgress*, bool) () from /usr/lib/libapt-pkg.so.4.10
#40 0x003f9bad in QApt::Cache::open (this=0x8ece728) at /build/buildd/qapt-1.1.90/src/cache.cpp:85
#41 0x003f4d3a in QApt::Backend::reloadCache (this=0x8f2be88) at /build/buildd/qapt-1.1.90/src/backend.cpp:178
#42 0x0806301b in ApplicationBackend::reload (this=0x8eb5610) at /build/buildd/muon-1.1.90/installer/ApplicationBackend.cpp:118
#43 0x080654de in ApplicationWindow::sourcesEditorFinished (this=0x8ec8c50, reload=1) at /build/buildd/muon-1.1.90/installer/ApplicationWindow.cpp:419
#44 0x0806a15d in ApplicationWindow::qt_metacall (this=0x8ec8c50, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfb78a54) at /build/buildd/muon-1.1.90/obj-i686-linux-gnu/installer/ApplicationWindow.moc:117
#45 0x00a6e2dd in metacall (object=0x8ec8c50, cl=QMetaObject::InvokeMetaMethod, idx=90, argv=0xbfb78a54) at kernel/qmetaobject.cpp:237
#46 QMetaObject::metacall (object=0x8ec8c50, cl=QMetaObject::InvokeMetaMethod, idx=90, argv=0xbfb78a54) at kernel/qmetaobject.cpp:232
#47 0x00a7d10a in QMetaObject::activate (sender=0x939ee28, m=0xb9c89c, local_signal_index=2, argv=0xbfb78a54) at kernel/qobject.cpp:3278
#48 0x009ffacd in QProcess::finished (this=0x939ee28, _t1=1, _t2=QProcess::NormalExit) at .moc/release-shared/moc_qprocess.cpp:142
#49 0x00a051fd in QProcessPrivate::_q_processDied (this=0x949b2a0) at io/qprocess.cpp:1051
#50 0x00a05893 in QProcess::qt_metacall (this=0x939ee28, _c=QMetaObject::InvokeMetaMethod, _id=13, _a=0xbfb78be8) at .moc/release-shared/moc_qprocess.cpp:115
#51 0x0100445e in KProcess::qt_metacall (this=0x939ee28, _c=QMetaObject::InvokeMetaMethod, _id=21, _a=0xbfb78be8) at ./kprocess.moc:69
#52 0x00a6e2dd in metacall (object=0x939ee28, cl=QMetaObject::InvokeMetaMethod, idx=21, argv=0xbfb78be8) at kernel/qmetaobject.cpp:237
#53 QMetaObject::metacall (object=0x939ee28, cl=QMetaObject::InvokeMetaMethod, idx=21, argv=0xbfb78be8) at kernel/qmetaobject.cpp:232
#54 0x00a7d10a in QMetaObject::activate (sender=0x94c01d0, m=0xb9e598, local_signal_index=0, argv=0xbfb78be8) at kernel/qobject.cpp:3278
#55 0x00acbde5 in QSocketNotifier::activated (this=0x94c01d0, _t1=34) at .moc/release-shared/moc_qsocketnotifier.cpp:89
#56 0x00a8447f in QSocketNotifier::event (this=0x94c01d0, e=0xbfb78f24) at kernel/qsocketnotifier.cpp:317
#57 0x015f2374 in notify_helper (this=0x8de6228, receiver=0x94c01d0, e=0xbfb78f24) at kernel/qapplication.cpp:4467
#58 QApplicationPrivate::notify_helper (this=0x8de6228, receiver=0x94c01d0, e=0xbfb78f24) at kernel/qapplication.cpp:4439
#59 0x015f7723 in QApplication::notify (this=0xbfb78f24, receiver=0x94c01d0, e=0xbfb78f24) at kernel/qapplication.cpp:3867
#60 0x006a53d1 in KApplication::notify (this=0xbfb79210, receiver=0x94c01d0, event=0xbfb78f24) at ../../kdeui/kernel/kapplication.cpp:311
#61 0x00a67f1e in QCoreApplication::notifyInternal (this=0xbfb79210, receiver=0x94c01d0, event=0xbfb78f24) at kernel/qcoreapplication.cpp:731
#62 0x00a958a8 in sendEvent (source=0x8de2a00) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#63 socketNotifierSourceDispatch (source=0x8de2a00) at kernel/qeventdispatcher_glib.cpp:110
#64 0x05089e1f in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#65 0x0508a550 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#66 0x0508a7ea in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#67 0x00a96207 in QEventDispatcherGlib::processEvents (this=0x8dc3228, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#68 0x016a9e0a in QGuiEventDispatcherGlib::processEvents (this=0x8dc3228, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#69 0x00a66f5d in QEventLoop::processEvents (this=0xbfb79174, flags=...) at kernel/qeventloop.cpp:149
#70 0x00a671a1 in QEventLoop::exec (this=0xbfb79174, flags=...) at kernel/qeventloop.cpp:201
#71 0x00a6b8fd in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#72 0x015eff14 in QApplication::exec () at kernel/qapplication.cpp:3741
#73 0x0805db56 in main (argc=0, argv=0x6a000000) at /build/buildd/muon-1.1.90/installer/main.cpp:61

Reported using DrKonqi
Comment 1 Jonathan Thomas 2011-08-04 13:46:05 UTC
Judging by the backtrace, the sources refresh had finished right as you were exiting, and MSC was trying to do its post-refresh re-initialization of the apt bits.

When you exit MSC, it first checks to see if there are any marked changes in the apt backend, and trying to use the backend during re-initialization caused this crash.

I'll see about fixing this when I get off of work, thanks.
Comment 2 Jonathan Thomas 2011-08-04 23:39:10 UTC
Git commit c728653ce3de6b0793d4f0c9326497c7552a7482 by Jonathan Thomas.
Committed on 05/08/2011 at 01:35.
Pushed by jmthomas into branch 'master'.

Do not allow exits during APT cache reloads.

This fixes a bug where the pending-changes check in the exit query would crash if the user
attempted to exit during a cache reload. (E.g. after a sources refresh)

BUG:279345
FIXED-IN:1.2.0

M  +3    -0    muon/MainWindow.cpp
M  +2    -0    installer/ApplicationWindow.cpp
M  +3    -0    updater/UpdaterWindow.cpp

http://commits.kde.org/muon/c728653ce3de6b0793d4f0c9326497c7552a7482
Comment 3 Jonathan Thomas 2011-08-22 03:38:39 UTC
*** Bug 274809 has been marked as a duplicate of this bug. ***