Bug 261478 - print-manager causes kded to hang if no local CUPS daemon is running
Summary: print-manager causes kded to hang if no local CUPS daemon is running
Status: RESOLVED INTENTIONAL
Alias: None
Product: print-manager
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Daniel Nicoletti
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-28 19:41 UTC by Martin Herkt
Modified: 2012-02-18 16:11 UTC (History)
0 users

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 Martin Herkt 2010-12-28 19:41:07 UTC
Version:           SVN (using Devel) 
OS:                Linux

When no local CUPS daemon is running, print-manager fruequently causes kded to hang until the connection timeout occurs.

Iā€™m not sure whether CUPS needs to be configured for this to happen.

Reproducible: Always

Steps to Reproduce:
1. stop any running CUPS daemon
2. start kded4 with print-manager installed

Actual Results:  
kded4 hangs while attempting to connect to a non-existent CUPS daemon, causing any applications communicating with kded4 to hang as well, making almost all of KDE unusable

Expected Results:  
kded4 does not hang

Backtrace:

#0  0x00007ff2fcfb31bd in connect () from /lib64/libc.so.6
#1  0x00007ff2dd59718d in httpAddrConnect () from /usr/lib64/libcups.so.2
#2  0x00007ff2dd59684c in httpReconnect () from /usr/lib64/libcups.so.2
#3  0x00007ff2dd5968e6 in httpConnectEncrypt () from /usr/lib64/libcups.so.2
#4  0x00007ff2dd5b1d8f in _cupsConnect () from /usr/lib64/libcups.so.2
#5  0x00007ff2dd5b2e75 in cupsGetJobs2 () from /usr/lib64/libcups.so.2
#6  0x00007ff2dd7caa79 in PrintD::checkJobs (this=0x8db580)
    at /stuff/kde/ramfs/kdeplayground-base-1194799/print-manager/printd/printd.cpp:80
#7  0x00007ff2dd7c95d4 in PrintD::qt_metacall (this=0x8db580, _c=QMetaObject::InvokeMetaMethod, 
    _id=<value optimized out>, _a=<value optimized out>)
    at /stuff/kde/ramfs/kdeplayground-base-1194799/build/print-manager/printd/moc_printd.cpp:76
#8  0x00007ff2fbaebda1 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()
   from /usr/lib64/libQtCore.so.4
#9  0x00007ff2fbaea209 in QObject::event(QEvent*) () from /usr/lib64/libQtCore.so.4
#10 0x00007ff2fae95534 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#11 0x00007ff2fae9db7f in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#12 0x00007ff2fc7827e6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#13 0x00007ff2fbad582c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#14 0x00007ff2fbb05378 in ?? () from /usr/lib64/libQtCore.so.4
#15 0x00007ff2fbb020fd in ?? () from /usr/lib64/libQtCore.so.4
#16 0x00007ff2f76e4a43 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#17 0x00007ff2f76e5220 in ?? () from /lib64/libglib-2.0.so.0
#18 0x00007ff2f76e54c0 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#19 0x00007ff2fbb02886 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/libQtCore.so.4
#20 0x00007ff2faf3a82e in ?? () from /usr/lib64/libQtGui.so.4
#21 0x00007ff2fbad4b62 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/libQtCore.so.4
#22 0x00007ff2fbad4d75 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#23 0x00007ff2fbad9599 in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#24 0x00007ff2fd2545f7 in kdemain () from /usr/lib64/libkdeinit4_kded4.so
#25 0x00007ff2fcefdbbd in __libc_start_main () from /lib64/libc.so.6
#26 0x0000000000400699 in _start ()
Comment 1 Daniel Nicoletti 2012-02-18 16:11:34 UTC
Thanks for the bug report, I'm going to close it since I'll remove the code that check for jobs and put them on a tray icon, I could fix this but as I'm going to write a plasmoid the kded will stay there for another task that doesn't block it.