Summary: | System settings crashes when selecting a default printer | ||
---|---|---|---|
Product: | [Frameworks and Libraries] print-manager | Reporter: | ChrisiPK |
Component: | general | Assignee: | Daniel Nicoletti <dantti12> |
Status: | RESOLVED FIXED | ||
Severity: | crash | ||
Priority: | NOR | ||
Version: | 4.10.2 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/print-manager/62ae974c2aa4842c6dc46cd6c154ae06b5487c24 | Version Fixed In: |
Description
ChrisiPK
2013-05-16 01:06:14 UTC
Does it happen every time? Yes, see initial report: The crash can be reproduced every time. Ok, I need you then to install print-manager debug symbols and generate the backtrace again as I don't have a clue on what's wrong without it. Thanks New backtrace with all relevant debug symbols: Application: System Settings (systemsettings), signal: Segmentation fault Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Current thread is 1 (Thread 0x7fb3867767c0 (LWP 20917))] Thread 3 (Thread 0x7fb36976a700 (LWP 20918)): #0 0x00007fb37c7e334d in g_mutex_get_impl (mutex=0x7fb3640009a0) at /build/buildd/glib2.0-2.36.0/./glib/gthread-posix.c:120 #1 0x00007fb37c7e35e9 in g_mutex_unlock (mutex=mutex@entry=0x7fb3640009a0) at /build/buildd/glib2.0-2.36.0/./glib/gthread-posix.c:229 #2 0x00007fb37c7a39c2 in g_main_context_prepare (context=context@entry=0x7fb3640009a0, priority=priority@entry=0x7fb369769c38) at /build/buildd/glib2.0-2.36.0/./glib/gmain.c:3393 #3 0x00007fb37c7a40fe in g_main_context_iterate (context=context@entry=0x7fb3640009a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/buildd/glib2.0-2.36.0/./glib/gmain.c:3681 #4 0x00007fb37c7a4304 in g_main_context_iteration (context=0x7fb3640009a0, may_block=1) at /build/buildd/glib2.0-2.36.0/./glib/gmain.c:3762 #5 0x00007fb383ef8036 in QEventDispatcherGlib::processEvents (this=0x7fb3640008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426 #6 0x00007fb383ec838f in QEventLoop::processEvents (this=this@entry=0x7fb369769d90, flags=...) at kernel/qeventloop.cpp:149 #7 0x00007fb383ec8618 in QEventLoop::exec (this=this@entry=0x7fb369769d90, flags=...) at kernel/qeventloop.cpp:204 #8 0x00007fb383dca410 in QThread::exec (this=this@entry=0x1c2c670) at thread/qthread.cpp:542 #9 0x00007fb383ea9edf in QInotifyFileSystemWatcherEngine::run (this=0x1c2c670) at io/qfilesystemwatcher_inotify.cpp:256 #10 0x00007fb383dccbec in QThreadPrivate::start (arg=0x1c2c670) at thread/qthread_unix.cpp:338 #11 0x00007fb37cc76f8e in start_thread (arg=0x7fb36976a700) at pthread_create.c:311 #12 0x00007fb38377ee1d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 Thread 2 (Thread 0x7fb362a40700 (LWP 20919)): #0 0x00007fb3837723cd in poll () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007fb3688da18f in poll (__timeout=60000, __nfds=1, __fds=0x7fb362a341c0) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46 #2 _httpWait (http=http@entry=0x7fb35c016ca0, msec=60000, usessl=usessl@entry=1) at http.c:2995 #3 0x00007fb3688da2ec in httpGets (line=line@entry=0x7fb362a34250 "", length=length@entry=32768, http=http@entry=0x7fb35c016ca0) at http.c:1162 #4 0x00007fb3688da4fe in _httpUpdate (http=http@entry=0x7fb35c016ca0, status=status@entry=0x7fb362a3c29c) at http.c:2729 #5 0x00007fb3688da7fd in httpUpdate (http=http@entry=0x7fb35c016ca0) at http.c:2899 #6 0x00007fb3688d8220 in cupsGetFd (http=http@entry=0x7fb35c016ca0, resource=resource@entry=0x7fb3688fed01 "/admin/conf/cupsd.conf", fd=fd@entry=4) at getputfile.c:105 #7 0x00007fb3688c54ce in get_cupsd_conf (http=http@entry=0x7fb35c016ca0, cg=cg@entry=0x7fb35c002720, last_update=0, name=name@entry=0x7fb362a3ea30 "/tmp/051b5519f93d5", remote=remote@entry=0x7fb362a3ea20, namesize=1024) at adminutil.c:2198 #8 0x00007fb3688c67b8 in cupsAdminGetServerSettings (http=0x7fb35c016ca0, num_settings=0x7fb362a3f2c8, settings=0x7fb362a3f308) at adminutil.c:946 #9 0x00007fb368b353f1 in KCupsRequest::getServerSettings (this=0x1dbb5f0) at ../../libkcups/KCupsRequest.cpp:276 #10 0x00007fb368b26665 in qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at moc_KCupsRequest.cpp:105 #11 KCupsRequest::qt_static_metacall (_o=0x1dbb5f0, _c=QMetaObject::ReadProperty, _id=60000, _a=0xffffffffffffffff) at moc_KCupsRequest.cpp:86 #12 0x00007fb383ee35be in QObject::event (this=0x1dbb5f0, e=<optimized out>) at kernel/qobject.cpp:1194 #13 0x00007fb384b2d8ec in QApplicationPrivate::notify_helper (this=this@entry=0x161c560, receiver=receiver@entry=0x1dbb5f0, e=e@entry=0x1db90d0) at kernel/qapplication.cpp:4567 #14 0x00007fb384b3025b in QApplication::notify (this=this@entry=0x7fffc4f91900, receiver=receiver@entry=0x1dbb5f0, e=e@entry=0x1db90d0) at kernel/qapplication.cpp:4428 #15 0x00007fb38583aaf6 in KApplication::notify (this=0x7fffc4f91900, receiver=0x1dbb5f0, event=0x1db90d0) at ../../kdeui/kernel/kapplication.cpp:311 #16 0x00007fb383ec963e in QCoreApplication::notifyInternal (this=0x7fffc4f91900, receiver=receiver@entry=0x1dbb5f0, event=event@entry=0x1db90d0) at kernel/qcoreapplication.cpp:946 #17 0x00007fb383ecd171 in sendEvent (event=0x1db90d0, receiver=0x1dbb5f0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231 #18 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x1da0650) at kernel/qcoreapplication.cpp:1570 #19 0x00007fb383ecd4a3 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1463 #20 0x00007fb383ef7e83 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236 #21 postEventSourceDispatch (s=s@entry=0x7fb35c0012d0) at kernel/qeventdispatcher_glib.cpp:279 #22 0x00007fb37c7a3f05 in g_main_dispatch (context=0x7fb35c0009a0) at /build/buildd/glib2.0-2.36.0/./glib/gmain.c:3054 #23 g_main_context_dispatch (context=context@entry=0x7fb35c0009a0) at /build/buildd/glib2.0-2.36.0/./glib/gmain.c:3630 #24 0x00007fb37c7a4248 in g_main_context_iterate (context=context@entry=0x7fb35c0009a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/buildd/glib2.0-2.36.0/./glib/gmain.c:3701 #25 0x00007fb37c7a4304 in g_main_context_iteration (context=0x7fb35c0009a0, may_block=1) at /build/buildd/glib2.0-2.36.0/./glib/gmain.c:3762 #26 0x00007fb383ef8016 in QEventDispatcherGlib::processEvents (this=0x7fb35c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:424 #27 0x00007fb383ec838f in QEventLoop::processEvents (this=this@entry=0x7fb362a3fd80, flags=...) at kernel/qeventloop.cpp:149 #28 0x00007fb383ec8618 in QEventLoop::exec (this=this@entry=0x7fb362a3fd80, flags=...) at kernel/qeventloop.cpp:204 #29 0x00007fb383dca410 in QThread::exec (this=this@entry=0x1da04b0) at thread/qthread.cpp:542 #30 0x00007fb368b2b6e5 in KCupsConnection::run (this=0x1da04b0) at ../../libkcups/KCupsConnection.cpp:310 #31 0x00007fb383dccbec in QThreadPrivate::start (arg=0x1da04b0) at thread/qthread_unix.cpp:338 #32 0x00007fb37cc76f8e in start_thread (arg=0x7fb362a40700) at pthread_create.c:311 #33 0x00007fb38377ee1d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 Thread 1 (Thread 0x7fb3867767c0 (LWP 20917)): [KCrash Handler] #6 0x00007fb384b6c78e in QWidget::testAttribute_helper (this=0x1d78fa0, attribute=Qt::WA_ForceDisabled) at kernel/qwidget.cpp:11068 #7 0x00007fb384b75315 in testAttribute (attribute=attribute@entry=Qt::WA_ForceDisabled, this=0x1d78fa0) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:1042 #8 QWidget::setAttribute (this=0x1d78fa0, attribute=attribute@entry=Qt::WA_ForceDisabled, on=true) at kernel/qwidget.cpp:10726 #9 0x00007fb384b77576 in QWidget::setEnabled (this=<optimized out>, enable=<optimized out>) at kernel/qwidget.cpp:3380 #10 0x00007fb368d5c538 in PrinterDescription::setIsDefault (this=this@entry=0x1d77820, isDefault=<optimized out>) at ../../printer-manager-kcm/PrinterDescription.cpp:173 #11 0x00007fb368d5c5dd in PrinterDescription::on_defaultCB_clicked (this=0x1d77820) at ../../printer-manager-kcm/PrinterDescription.cpp:98 #12 0x00007fb368d56f7b in PrinterDescription::qt_metacall (this=0x1d77820, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7fffc4f903f0) at moc_PrinterDescription.cpp:112 #13 0x00007fb383ede2b3 in QMetaObject::activate (sender=sender@entry=0x1d78fa0, m=m@entry=0x7fb3855f8ca0 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fffc4f903f0) at kernel/qobject.cpp:3558 #14 0x00007fb385198c82 in QAbstractButton::clicked (this=this@entry=0x1d78fa0, _t1=true) at .moc/release-shared/moc_qabstractbutton.cpp:220 #15 0x00007fb384eec23e in QAbstractButtonPrivate::emitClicked (this=this@entry=0x1d79a90) at widgets/qabstractbutton.cpp:548 #16 0x00007fb384eeca30 in QAbstractButtonPrivate::click (this=this@entry=0x1d79a90) at widgets/qabstractbutton.cpp:541 #17 0x00007fb384eecc9c in QAbstractButton::mouseReleaseEvent (this=0x1d78fa0, e=0x7fffc4f90c90) at widgets/qabstractbutton.cpp:1123 #18 0x00007fb384b7aa89 in QWidget::event (this=0x1d78fa0, event=0x7fffc4f90c90) at kernel/qwidget.cpp:8375 #19 0x00007fb384b2d8ec in QApplicationPrivate::notify_helper (this=this@entry=0x161c560, receiver=receiver@entry=0x1d78fa0, e=e@entry=0x7fffc4f90c90) at kernel/qapplication.cpp:4567 #20 0x00007fb384b30a33 in QApplication::notify (this=this@entry=0x7fffc4f91900, receiver=receiver@entry=0x1d78fa0, e=e@entry=0x7fffc4f90c90) at kernel/qapplication.cpp:4110 #21 0x00007fb38583aaf6 in KApplication::notify (this=0x7fffc4f91900, receiver=0x1d78fa0, event=0x7fffc4f90c90) at ../../kdeui/kernel/kapplication.cpp:311 #22 0x00007fb383ec963e in QCoreApplication::notifyInternal (this=0x7fffc4f91900, receiver=receiver@entry=0x1d78fa0, event=event@entry=0x7fffc4f90c90) at kernel/qcoreapplication.cpp:946 #23 0x00007fb384b33933 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231 #24 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x1d78fa0, event=event@entry=0x7fffc4f90c90, alienWidget=alienWidget@entry=0x1d78fa0, nativeWidget=nativeWidget@entry=0x1d687a0, buttonDown=buttonDown@entry=0x7fb38560b308 <qt_button_down>, lastMouseReceiver=..., spontaneous=spontaneous@entry=true) at kernel/qapplication.cpp:3178 #25 0x00007fb384ba8ec4 in QETWidget::translateMouseEvent (this=this@entry=0x1d687a0, event=event@entry=0x7fffc4f91410) at kernel/qapplication_x11.cpp:4631 #26 0x00007fb384ba7ef1 in QApplication::x11ProcessEvent (this=0x7fffc4f91900, event=event@entry=0x7fffc4f91410) at kernel/qapplication_x11.cpp:3746 #27 0x00007fb384bd30b2 in x11EventSourceDispatch (s=s@entry=0x1611680, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #28 0x00007fb37c7a3f05 in g_main_dispatch (context=0x161cc50) at /build/buildd/glib2.0-2.36.0/./glib/gmain.c:3054 #29 g_main_context_dispatch (context=context@entry=0x161cc50) at /build/buildd/glib2.0-2.36.0/./glib/gmain.c:3630 #30 0x00007fb37c7a4248 in g_main_context_iterate (context=context@entry=0x161cc50, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/buildd/glib2.0-2.36.0/./glib/gmain.c:3701 #31 0x00007fb37c7a4304 in g_main_context_iteration (context=0x161cc50, may_block=1) at /build/buildd/glib2.0-2.36.0/./glib/gmain.c:3762 #32 0x00007fb383ef8016 in QEventDispatcherGlib::processEvents (this=0x15c8ad0, flags=...) at kernel/qeventdispatcher_glib.cpp:424 #33 0x00007fb384bd31ae in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #34 0x00007fb383ec838f in QEventLoop::processEvents (this=this@entry=0x7fffc4f917e0, flags=...) at kernel/qeventloop.cpp:149 #35 0x00007fb383ec8618 in QEventLoop::exec (this=this@entry=0x7fffc4f917e0, flags=...) at kernel/qeventloop.cpp:204 #36 0x00007fb383ecdcf6 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218 #37 0x00007fb384b2bffc in QApplication::exec () at kernel/qapplication.cpp:3828 #38 0x000000000040aa2e in main (argc=5, argv=0x7fffc4f91a48) at ../../../systemsettings/app/main.cpp:49 Git commit 62ae974c2aa4842c6dc46cd6c154ae06b5487c24 by Daniel Nicoletti. Committed on 24/05/2013 at 19:43. Pushed by dantti into branch 'KDE/4.10'. If CUPS takes a while to respond a request, and in the meanwhile the user closes the application, our worker thread will still be running and when the CUPS request finishes the waitForFinish() event loop exits continuing to do a change on the GUI which was closed but not deleted. The application then crashes inside Qt because we tried to set something on a widget that was not visible or so. Since waitForFinish() is not very cool and must be avoided in this case so we connect all the affected requests to a slot that checks if the request fails, and then requests the an UI update to use the values from the model. M +2 -0 printer-manager-kcm/PrintKCM.cpp M +36 -51 printer-manager-kcm/PrinterDescription.cpp M +6 -0 printer-manager-kcm/PrinterDescription.h http://commits.kde.org/print-manager/62ae974c2aa4842c6dc46cd6c154ae06b5487c24 |