Red Hat Bugzilla – Bug 630931
kpackagekit: malformed D-Bus introspection data
Last modified: 2011-09-01 03:15:24 EDT
abrt version: 1.1.13
Attached file: backtrace
cmdline: /usr/bin/python /usr/bin/d-feet
reason: _introspect_parser.py:150:process_introspection_data:IntrospectionParserException: Error parsing introspect data: <class 'xml.parsers.expat.ExpatError'>: unbound prefix: line 5, column 4
release: Fedora release 13 (Goddard)
How to reproduce
1. Start d-feet
2. Filter org.freedesktop.PackageKit in the session bus
3. Notice that /org/freedesktop/PackageKit object is missing because it is failing to parse
Created an attachment (id=443495)
Sounds like a PackageKit error. I don't have any PackageKit service, only PackageKit.Application and PackageKit.UpdateIcon in my session. On my system bus I do get a PackageKit service. No error occur in parsing the introspect data.
OS Release: Fedora release 13 (Goddard)
Doesn't have exact steps. Just clicking on bus names on Session Bus.
This seems to happen to me only under kde with kpackagekit.
I can confirm that it has something to do with kpackagekit.
It seems to be a bug in kpackagekitsmarticon that provides 'org.freedesktop.PackageKit' service.
However, it returns bad introspection file that expat fails to parse (doc namespace) - probably missing namespace definition:
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
gnome-packagekit provides clean introspection, though.
See introspection files generated by:
qdbus --session org.freedesktop.PackageKit /org/freedesktop/PackageKit org.freedesktop.DBus.Introspectable.Introspect
both for gnome-packagekit (gpk-dbus-service) and kpackagekit (kpackagekitsmarticon).
Created attachment 446902 [details]
Introspection file from gnome-packagekit
Created attachment 446903 [details]
Introspection file from kpackagekit
Seems like a namespace issue. This should be filed upstream with kpackagekit unless it crashes D-Feet. Does it it cause D-Feet to stop working or does D-Feet just continue without showing introspection data for kpackagekit?
D-Feet continues to work normally. The only issue is that abrt catches the error (from comment #1) and indicates a crash and kpackagekit data are not available, of course.
I checked kpackagekit upstream and the namespace definition is there:
I hope it will get to Fedora soon.
Reassigning to kpackagekit. Fix is upstream. Please patch or upgrade kpackagekit in Fedora 13
That commit is 9 months old and already in the 0.6.0 release we're shipping in F13, so it cannot be the fix. (And by the way, 0.6.1 is already queued for testing.)
(It's already in testing and sitting there for a week, actually. But there's nothing that changed with respect to that XML file between 0.6.0 and 0.6.1.)
I've tested kpackagekit-0.6.1-1.fc13.x86_64. There is no change against kpackagekit-0.6.0-2.fc13.x86_64 in respect to the introspection.
qdbus org.freedesktop.PackageKit /org/freedesktop/PackageKit Introspect
produces the same output as in comment #7.
Note there is <node> tag without arguments (name and xmlns:doc namespace)
It is probably a bug in qdbusxml2cpp (or some other component), because qdbusxml2cpp generates adaptor class that *doesn't* have any <node> tag in introspection data. Then an empty <node> is included when introspection is required.
Problem is still here on F-14.
This is still the case with kpackagekit-0.6.3.3-1.fc14.x86_64. The following was what I had drafted and intended to put up as a new bug, but then I found that it already were reported here:
Trying to add an network ipp printer with system-config-printer fails.
Server -> New -> Printer, fill inn hostname and path. Pressing the Verify button results in "This print share is accessible."
So far everything is working ok. But when pressing Forward, KPackageKit starts searching for a driver but fails shortly after with "Could not find printer driver in any configured software source" and on standard output the following is printed:
ERROR:dbus.proxies:Introspect error on :1.31:/org/freedesktop/PackageKit: dbus.exceptions.IntrospectionParserException: Error parsing introspect data: <class 'xml.parsers.expat.ExpatError'>: unbound prefix: line 5, column 4
Debugging with strace and capturing all strings I can assemble the whole XML content (attached as dbus-communication.xml.orig), the first 10 lines are
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
The interface used for modifying the package database.
Running xmllint on this file, it complains about all the "doc:" prefixes.
dbus-communication.xml.orig:5: namespace error : Namespace prefix doc on doc is not defined
And while searching around I find that it seems that the name space should have been present, like
and with this change xmllint is happy.
I tried to find out where and how to add but I am now giving up trying to fix it myself and instead report it.
Works fine with kpackagekit-0.6.3.3-2.fc15.