Subject: Re: bug#9581: 24.0.50; dbus-unregister-object fails if service is nil

From: Michael Albinus <[email-masked]>
Date: Sun, 25 Sep 2011 18:03:50 +0200

Julien Danjou <[email-masked]> writes:

>> `dbus-register-signal' checks for the a valid service name, if it isn't
>> nil. Usually, "some.service" is not known; in my test
>> `dbus-register-signal' raises an error then.
>>
>> How did you manage to register your signal with that service?
>
> No idea. But the check seems to be not functionnal here obviously.

The point was that I have `dbus-debug' set to t "since ever". In this
case, `dbus-get-name-owner' raises an error, which I've seen ...

>>>  ((:session "org.gtk.Private.RemoteVolumeMonitor" "VolumeAdded")
>>>   (""
>>>    "some.service" "/org/gtk/Private/RemoteVolumeMonitor" identity
>>>    "")))
>>
>> This entry has a corrupted match rule. Again, which trick brings
>> `dbus-register-signal' to accept it? I must implement a counter-check
>> for this!
>
> Yes. If you want me to test a patch before committing it, or to run a
> debug patch with some printf or whatever, do not hesitate.

Should be fixed now.

> Again, be careful on one last thing. I did a couple of tests in an Emacs
> session, and sometimes I saw:
>
> method call sender=:1.254 -> dest=org.freedesktop.DBus serial=27
> path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
> member=ReleaseName
>    string "some.service"
>
> And I was *only* testing dbus-register-signal, so there seems to be
> still some case or the "(when service …" stuff is doing ReleaseName even
> on a signal match.

Also fixed.

Thanks for testing, and best regards, Michael.