Bug#740139: gnome-maps fails to start

Simon McVittie smcv at debian.org
Wed Feb 26 13:07:09 UTC 2014


On Wed, 26 Feb 2014 at 08:38:48 +0100, Marcus Lundblad wrote:
> Trying to start gnome-maps I get the following stderr output:
> 
>     JS ERROR: !!!   Exception was: Gio.DBusError: Error calling
> StartServiceByName for org.freedesktop.GeoClue2:
> GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited
> with unknown return code 253

I don't suppose you had a locally-installed geoclue-2.0 in /usr/local or
anything like that?

Otherwise, this means dbus-daemon executed dbus-daemon-launch-helper,
instructing it to behave according to
/usr/share/dbus-1/system-services/org.freedesktop.GeoClue2.service,
and dbus-daemon-launch-helper exited 253 before the name
org.freedesktop.GeoClue2 appeared on the bus. That, in turn, probably
means that the process described in the .service file exited 253
(at least, I can't find any reason why d-d-l-h would exit 253; on success,
it uses exec() to become the target service).

That service file for reference:

    [D-BUS Service]
    Name=org.freedesktop.GeoClue2
    Exec=/usr/lib/geoclue-2.0/geoclue -t 5
    User=geoclue

> Is it somehow possible to start the geoclue2 dbus service manually to try and
> debug this?

Yes. The closest possible equivalent to what d-d-l-h does, without
actually executing it, would go something like this:

    sudo -u geoclue env - \
        DBUS_STARTER_ADDRESS=unix:path=/var/run/dbus/system_bus_socket \
        DBUS_STARTER_BUS_TYPE=system \
        /usr/lib/geoclue-2.0/geoclue -t 5

or to go via d-d-l-h, maybe something like this:

    sudo -u messagebus \
        /usr/lib/dbus-1.0/dbus-daemon-launch-helper \
        org.freedesktop.GeoClue2

(dbus-daemon-launch-helper is setuid root so that it can switch privileges,
in this case to geoclue, and it only allows itself to be executed by
messagebus.)

>From IRC:
> < mlundblad> I managed to get it to start by first restarting 
>              dbus.service (I'm not sure if this is too be expected)

This is not meant to be necessary. If files in either /etc/dbus-1/system.d
or /usr/share/dbus-1/system-services are modified, the system dbus-daemon
is meant to reload itself automatically, using inotify (or kqueue on kFreeBSD).
You should see a syslog message like this:

Feb 26 12:42:29 archetype dbus[1328]: [system] Reloaded configuration

and I've confirmed that on my sid laptop,
`sudo touch /usr/share/dbus-1/system-services/org.freedesktop.UPower.service`
and `sudo touch /etc/dbus-1/system.d/pulseaudio-system.conf` both provoke
that message (replace with any file in the appropriate directory if you
don't have those packages installed).

Just to be safe, I'm considering adding a trigger to dbus that registers
an interest in those two directories, calls its ReloadConfig method and
waits for it to finish whenever dpkg alters those directories.

    S



More information about the pkg-gnome-maintainers mailing list