[sugar] Re: Catch duplicates on service creation?
Jani Monoses
jani.monoses
Sun Apr 1 07:35:43 EDT 2007
Dan Williams wrote:
> On Sun, 2007-03-18 at 19:10 -0400, Mike C. Fletcher wrote:
>> I'm finding that while testing with sugar-jhbuild it's quite annoying to
>> have the service creation bomb out when an existing instance of the
>> service (presence or clipboard) is active. That is, it would be useful
>> if it could simply catch the error and stop trying to create the service
>> if there is an org.freedesktop.Avahi.CollisionError (local name
>> collision) error on the attempt to create the services.
>
> I think you're confusing two different things... the PresenceService
> and the Clipboard are _dbus_ services, but the Avahi.CollisionError you
> speak of is an mDNS service... Do you have some tracebacks?
File "/usr/share/sugar/services/presence/PresenceService.py", line 272, in registerService
port, domain, sender)
File "/usr/share/sugar/services/presence/PresenceService.py", line 802, in register_service
service.register(self._system_bus, self._mdns_service)
File "/usr/share/sugar/services/presence/Service.py", line 420, in register
dbus.UInt16(self._port), info)
File "/var/lib/python-support/python2.5/dbus/proxies.py", line 85, in __call__
return self._proxy_method(*args, **keywords)
File "/var/lib/python-support/python2.5/dbus/proxies.py", line 169, in __call__
reply_message = self._connection.send_message_with_reply_and_block(message, timeout)
DBusException: org.freedesktop.Avahi.CollisionError: Local name collision
It happens when the emulator crashes or is interrupted with Ctrl-C. sugar-presence-service and
sugar-clipboard keep running so a new registration is not possible unless those are killed
or avahi restarted.
And the emulator can crash when started from a cold cache as pyGtk tries to open a display and coredump
before Xephyr gets to be properly set up. It can be worked around by adding a sleep of a few seconds after
spawning Xephyr but that is not too clean.
Jani
More information about the Sugar-devel
mailing list