Bug 270920 - Muon crashes due to fetching changelogs during cache reloads [QApt::Package::sourcePackage, ChangelogTab::changelogFetched]
Summary: Muon crashes due to fetching changelogs during cache reloads [QApt::Package::...
Status: RESOLVED FIXED
Alias: None
Product: muon
Classification: Applications
Component: muon (show other bugs)
Version: 1.0.2
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Jonathan Thomas
URL:
Keywords:
: 280001 284970 285535 289185 290592 293596 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-04-14 07:44 UTC by mniasfreemag
Modified: 2015-04-15 00:58 UTC (History)
9 users (show)

See Also:
Latest Commit:
Version Fixed In: 1.2.3


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description mniasfreemag 2011-04-14 07:44:32 UTC
Application: muon (1.0.2)
KDE Platform Version: 4.5.1 (KDE 4.5.1)
Qt Version: 4.7.0
Operating System: Linux 2.6.35-28-generic-pae i686
Distribution: Ubuntu 10.10

-- Information about the crash:
I was unstalling an application when muon crashed with segmentation fault. The nepomuk search is running in the background.

-- Backtrace:
Application: Muon Package Manager (muon), signal: Segmentation fault
[Current thread is 1 (Thread 0xb4d51930 (LWP 4618))]

Thread 2 (Thread 0xaf953b70 (LWP 4619)):
#0  0xb52b9e36 in clock_gettime () from /lib/librt.so.1
#1  0xb5ef750b in do_gettime () at tools/qelapsedtimer_unix.cpp:105
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:119
#3  0xb5fce6e5 in QTimerInfoList::updateCurrentTime (this=0x9b9c54c) at kernel/qeventdispatcher_unix.cpp:339
#4  0xb5fce72a in QTimerInfoList::timerWait (this=0x9b9c54c, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0xb5fcc7a8 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xaf9530bc) at kernel/qeventdispatcher_glib.cpp:136
#6  0xb5fcc83d in timerSourcePrepare (source=0x0, timeout=0xb52bdff4) at kernel/qeventdispatcher_glib.cpp:169
#7  0xb5432e6a in g_main_context_prepare () from /lib/libglib-2.0.so.0
#8  0xb5433279 in ?? () from /lib/libglib-2.0.so.0
#9  0xb5433848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#10 0xb5fcc59f in QEventDispatcherGlib::processEvents (this=0x99194d0, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#11 0xb5f9c609 in QEventLoop::processEvents (this=0xaf953290, flags=) at kernel/qeventloop.cpp:149
#12 0xb5f9ca8a in QEventLoop::exec (this=0xaf953290, flags=...) at kernel/qeventloop.cpp:201
#13 0xb5e98b7e in QThread::exec (this=0x9b8e250) at thread/qthread.cpp:490
#14 0xb5f7b35b in QInotifyFileSystemWatcherEngine::run (this=0x9b8e250) at io/qfilesystemwatcher_inotify.cpp:248
#15 0xb5e9bdf9 in QThreadPrivate::start (arg=0x9b8e250) at thread/qthread_unix.cpp:266
#16 0xb5e24cc9 in start_thread () from /lib/libpthread.so.0
#17 0xb5c6569e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb4d51930 (LWP 4618)):
[KCrash Handler]
#7  0xb7093021 in QApt::Package::sourcePackage() const () from /usr/lib/libqapt.so.1
#8  0x08074e1f in ChangelogTab::changelogFetched (this=0x9602140, job=0x9c25398) at /build/buildd/muon-1.0.2/src/DetailsTabs/ChangelogTab.cpp:72
#9  0x08075154 in ChangelogTab::qt_metacall (this=0x9602140, _c=QMetaObject::InvokeMetaMethod, _id=29, _a=0xbfb42a88) at /build/buildd/muon-1.0.2/obj-i686-linux-gnu/src/ChangelogTab.moc:77
#10 0xb5fa38ca in QMetaObject::metacall (object=0x9602140, cl=2967711752, idx=29, argv=0xbfb42a88) at kernel/qmetaobject.cpp:237
#11 0xb5fb66ad in QMetaObject::activate (sender=0x9c25398, m=0xb63cbb48, local_signal_index=3, argv=0x8084d88) at kernel/qobject.cpp:3280
#12 0xb62588a3 in KJob::result (this=0x9c25398, _t1=0x9c25398) at ./kjob.moc:194
#13 0xb6258c08 in KJob::emitResult (this=0x9c25398) at ../../kdecore/jobs/kjob.cpp:312
#14 0xb724ebcb in KIO::FileCopyJob::slotResult (this=0x9c25398, job=0x9bbe6e0) at ../../kio/kio/job.cpp:2265
#15 0xb724a3c2 in KIO::FileCopyJob::qt_metacall (this=0x9c25398, _c=QMetaObject::InvokeMetaMethod, _id=32, _a=0xbfb42c18) at ./jobclasses.moc:721
#16 0xb5fa38ca in QMetaObject::metacall (object=0x9c25398, cl=2967711752, idx=32, argv=0xbfb42c18) at kernel/qmetaobject.cpp:237
#17 0xb5fb66ad in QMetaObject::activate (sender=0x9bbe6e0, m=0xb63cbb48, local_signal_index=3, argv=0x8084d88) at kernel/qobject.cpp:3280
#18 0xb62588a3 in KJob::result (this=0x9bbe6e0, _t1=0x9bbe6e0) at ./kjob.moc:194
#19 0xb6258c08 in KJob::emitResult (this=0x9bbe6e0) at ../../kdecore/jobs/kjob.cpp:312
#20 0xb7247480 in KIO::SimpleJob::slotFinished (this=0x9bbe6e0) at ../../kio/kio/job.cpp:522
#21 0xb7247960 in KIO::TransferJob::slotFinished (this=0x9bbe6e0) at ../../kio/kio/job.cpp:1111
#22 0xb7244fb3 in KIO::SimpleJob::slotError (this=0x9bbe6e0, err=123, errorText=...) at ../../kio/kio/job.cpp:534
#23 0xb72450fe in KIO::SimpleJob::qt_metacall (this=0x9bbe6e0, _c=QMetaObject::InvokeMetaMethod, _id=31, _a=0xbfb42f74) at ./jobclasses.moc:170
#24 0xb72452ba in KIO::TransferJob::qt_metacall (this=0x9bbe6e0, _c=QMetaObject::InvokeMetaMethod, _id=31, _a=0xbfb42f74) at ./jobclasses.moc:355
#25 0xb5fa38ca in QMetaObject::metacall (object=0x9bbe6e0, cl=2967711752, idx=31, argv=0xbfb42f74) at kernel/qmetaobject.cpp:237
#26 0xb5fb66ad in QMetaObject::activate (sender=0x9978638, m=0xb73f6944, local_signal_index=2, argv=0x8084d88) at kernel/qobject.cpp:3280
#27 0xb7300059 in KIO::SlaveInterface::error (this=0x9978638, _t1=123, _t2=...) at ./slaveinterface.moc:159
#28 0xb73037ed in KIO::SlaveInterface::dispatch (this=0x9978638, _cmd=102, rawdata=...) at ../../kio/kio/slaveinterface.cpp:208
#29 0xb7300483 in KIO::SlaveInterface::dispatch (this=0x9978638) at ../../kio/kio/slaveinterface.cpp:91
#30 0xb72f2fe8 in KIO::Slave::gotInput (this=0x9978638) at ../../kio/kio/slave.cpp:344
#31 0xb72f31f3 in KIO::Slave::qt_metacall (this=0x9978638, _c=QMetaObject::InvokeMetaMethod, _id=30, _a=0xbfb4326c) at ./slave.moc:82
#32 0xb5fa38ca in QMetaObject::metacall (object=0x9978638, cl=2967711752, idx=30, argv=0xbfb4326c) at kernel/qmetaobject.cpp:237
#33 0xb5fb66ad in QMetaObject::activate (sender=0x9b9f908, m=0xb73f3500, local_signal_index=0, argv=0x8084d88) at kernel/qobject.cpp:3280
#34 0xb720ce17 in KIO::Connection::readyRead (this=0x9b9f908) at ./connection.moc:92
#35 0xb720f17e in KIO::ConnectionPrivate::dequeue (this=0x9bf7318) at ../../kio/kio/connection.cpp:82
#36 0xb720f2ae in KIO::Connection::qt_metacall (this=0x9b9f908, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0x9c03a98) at ./connection.moc:79
#37 0xb5fa38ca in QMetaObject::metacall (object=0x9b9f908, cl=2967711752, idx=5, argv=0x9c03a98) at kernel/qmetaobject.cpp:237
#38 0xb5faedf6 in QMetaCallEvent::placeMetaCall (this=0x9c84ce8, object=0x9b9f908) at kernel/qobject.cpp:534
#39 0xb5fb06a2 in QObject::event (this=0x9b9f908, e=0x0) at kernel/qobject.cpp:1219
#40 0xb6669fdc in QApplicationPrivate::notify_helper (this=0x93b2908, receiver=0x9b9f908, e=0x9c84ce8) at kernel/qapplication.cpp:4396
#41 0xb667004e in QApplication::notify (this=0xbfb43bc0, receiver=0x9b9f908, e=0x9c84ce8) at kernel/qapplication.cpp:3798
#42 0xb75d668a in KApplication::notify (this=0xbfb43bc0, receiver=0x9b9f908, event=0x9c84ce8) at ../../kdeui/kernel/kapplication.cpp:310
#43 0xb5f9db3b in QCoreApplication::notifyInternal (this=0xbfb43bc0, receiver=0x9b9f908, event=0x9c84ce8) at kernel/qcoreapplication.cpp:732
#44 0xb5fa0d8b in sendEvent (receiver=0x0, event_type=0, data=0x938f568) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#45 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x938f568) at kernel/qcoreapplication.cpp:1373
#46 0xb5fa0f4d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1266
#47 0xb5fcca74 in sendPostedEvents (s=0x93af2b0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#48 postEventSourceDispatch (s=0x93af2b0) at kernel/qeventdispatcher_glib.cpp:277
#49 0xb542f855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#50 0xb5433668 in ?? () from /lib/libglib-2.0.so.0
#51 0xb5433848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#52 0xb5fcc565 in QEventDispatcherGlib::processEvents (this=0x938f018, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#53 0xb672bbe5 in QGuiEventDispatcherGlib::processEvents (this=0x938f018, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#54 0xb5f9c609 in QEventLoop::processEvents (this=0xbfb43b24, flags=) at kernel/qeventloop.cpp:149
#55 0xb5f9ca8a in QEventLoop::exec (this=0xbfb43b24, flags=...) at kernel/qeventloop.cpp:201
#56 0xb5fa100f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#57 0xb6668e07 in QApplication::exec () at kernel/qapplication.cpp:3672
#58 0x080586d9 in main (argc=5, argv=0xbfb43ce4) at /build/buildd/muon-1.0.2/src/main.cpp:54

Reported using DrKonqi
Comment 1 Jonathan Thomas 2011-05-02 21:14:47 UTC
This crash has been fixed in Muon 1.1.
Comment 2 Christoph Feck 2011-08-13 11:23:39 UTC
Looks like it crashed in 1.1.2, too, see bug 280001.
Comment 3 Jonathan Thomas 2011-08-24 12:50:48 UTC
*** Bug 280001 has been marked as a duplicate of this bug. ***
Comment 4 Jonathan Thomas 2011-08-24 12:53:14 UTC
Ah, it's probably a changelog that was finished being fetched during a cache reload. I'll have to disconnect that signal when reloading, I suppose.

I'll investigate it further once I get home.
Comment 5 Jonathan Thomas 2011-10-25 22:49:46 UTC
*** Bug 284970 has been marked as a duplicate of this bug. ***
Comment 6 Christoph Feck 2011-11-02 09:05:14 UTC
*** Bug 285535 has been marked as a duplicate of this bug. ***
Comment 7 Jonathan Thomas 2011-11-13 17:26:17 UTC
Git commit e7f503e5147a1c4c03d85bbf7decad8461b7a57e by Jonathan Thomas.
Committed on 13/11/2011 at 18:24.
Pushed by jmthomas into branch 'master'.

Discard pending changelog fetch jobs before cache reloads. This prevents changelog jobs
finishing when the QApt::Backend is in a state where package pointers are invalid.

BUG:270920

M  +7    -1    muon/DetailsTabs/ChangelogTab.cpp
M  +1    -0    muon/DetailsWidget.cpp

http://commits.kde.org/muon/e7f503e5147a1c4c03d85bbf7decad8461b7a57e
Comment 8 Jonathan Thomas 2011-11-13 17:36:15 UTC
Git commit 050b7ac69c02108336683455cb49378173b4738d by Jonathan Thomas.
Committed on 13/11/2011 at 18:35.
Pushed by jmthomas into branch '1.2'.

Discard pending changelog fetch jobs before cache reloads. This prevents changelog jobs
finishing when the QApt::Backend is in a state where package pointers are invalid.

BUG:270920
FIXED-IN:1.2.3

M  +14   -0    libmuon/DetailsTabs/ChangelogTab.cpp
M  +1    -0    libmuon/DetailsWidget.cpp

http://commits.kde.org/muon/050b7ac69c02108336683455cb49378173b4738d
Comment 9 Jekyll Wu 2011-12-17 12:08:18 UTC
*** Bug 289185 has been marked as a duplicate of this bug. ***
Comment 10 Christoph Feck 2012-01-04 23:34:28 UTC
*** Bug 290592 has been marked as a duplicate of this bug. ***
Comment 11 Christoph Feck 2012-02-08 22:54:55 UTC
*** Bug 293596 has been marked as a duplicate of this bug. ***