Bug 662047 - troubleshooter uses D-Bus from two threads
Summary: troubleshooter uses D-Bus from two threads
Alias: None
Product: Fedora
Classification: Fedora
Component: system-config-printer
Version: 14
Hardware: x86_64
OS: Unspecified
Target Milestone: ---
Assignee: Tim Waugh
QA Contact: Fedora Extras Quality Assurance
Whiteboard: abrt_hash:984c54d958369a27389cadefd91...
Depends On:
TreeView+ depends on / blocked
Reported: 2010-12-10 12:27 UTC by Jiri Popelka
Modified: 2011-03-15 21:56 UTC (History)
2 users (show)

Fixed In Version: system-config-printer-1.2.7-2.fc13
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2011-02-07 20:00:59 UTC
Type: ---

Attachments (Terms of Use)
File: backtrace (43.11 KB, text/plain)
2010-12-10 12:27 UTC, Jiri Popelka
no flags Details
another backtrace (43.30 KB, text/plain)
2010-12-13 13:35 UTC, Jiri Popelka
no flags Details

Description Jiri Popelka 2010-12-10 12:27:51 UTC
abrt version: 1.1.14
architecture: x86_64
Attached file: backtrace
cmdline: /usr/bin/python /usr/share/system-config-printer/system-config-printer.py --debug
component: system-config-printer
crash_function: remove_entry
executable: /usr/bin/python
package: system-config-printer-1.2.5-6.fc14
rating: 4
reason: Process /usr/bin/python was killed by signal 11 (SIGSEGV)
release: Fedora release 14 (Laughlin)
time: 1291982895
uid: 500

system-config-printer-1.2.5-6.fc14.x86_64 or system-config-printer-1.2.4-2.fc14.x86_64
cups-1.4.4-11.fc14.x86_64 or cups-1.4.5-1.fc14.x86_64

How to reproduce
1. in troubleshooter evoke some action that requires authentication, like choosing printer and pressing Forward or enabling debug

No PolicyKit1 dialog appears and s-c-p crashes. The last few lines usually are:
Authentication pass: 1
Authentication: password callback set
Segmentation fault (core dumped)

Once I saw this instead of the crash:
ERROR:dbus.connection:Unable to set arguments (0, 0, [], []) according to signature u'iss': <type 'exceptions.TypeError'>: Expected a string or unicode object
DevicesGet API exception; using old signature
PolicyKit call to DevicesGet did not work: PolicyKit communication issue

Comment 1 Jiri Popelka 2010-12-10 12:27:53 UTC
Created attachment 467963 [details]
File: backtrace

Comment 2 Tim Waugh 2010-12-10 12:39:58 UTC
Looks like maybe threads 2 and 3 are both using D-Bus at the same time?  Probably the troubleshooter needs to be using the newer asyncconn module for asynchronous calling instead of timeops.

Comment 3 Jiri Popelka 2010-12-13 13:35:04 UTC
Created attachment 468371 [details]
another backtrace

Comment 4 Tim Waugh 2010-12-13 13:53:56 UTC
In this one, threads 1 and 2 are both using D-Bus at the same time.

One work-around would be to change AuthConnFactory so that it creates a cups.Connection instead of an authconn.Connection -- although the side effect would be that authentication would always be denied.  An alternative would be to adjust authconn.Connection so that the caller can prevent the underlying object being a cupspk.Connection (which uses D-Bus).

The real fix would be to use the proper asynchronous calling interface, asyncconn.

Comment 5 Tim Waugh 2010-12-16 14:36:49 UTC
Should be fixed by this commit actually:

commit 7480e83f04ec73cc1cccbefae440c26b1ba5c5a4
Author: Tim Waugh <twaugh@redhat.com>
Date:   Thu Dec 16 14:31:04 2010 +0000

    Initialise D-Bus threading in timedops module (bug #662047).
    Initialise threading for D-Bus.  This is needed as long as it is
    used from two separate threads.  We only do this in a few places
    now, but in particular the troubleshooter does this.

Comment 6 Fedora Update System 2011-01-17 17:39:50 UTC
system-config-printer-1.2.6-1.fc14 has been submitted as an update for Fedora 14.

Comment 7 Fedora Update System 2011-01-17 17:40:21 UTC
system-config-printer-1.2.6-1.fc13 has been submitted as an update for Fedora 13.

Comment 8 Fedora Update System 2011-01-18 21:28:54 UTC
system-config-printer-1.2.6-2.fc13 has been pushed to the Fedora 13 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update system-config-printer'.  You can provide feedback for this update here: https://admin.fedoraproject.org/updates/system-config-printer-1.2.6-2.fc13

Comment 9 Fedora Update System 2011-02-07 20:00:06 UTC
system-config-printer-1.2.6-3.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 10 Fedora Update System 2011-03-15 21:55:18 UTC
system-config-printer-1.2.7-2.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.