Tuesday, May 26, 2009

offer tube error caused by conary

It turns out that I wasted a lot of time on this, even it's the second time the problem occurred...

The 'Offer' operation (to offer a DBusTube to a contact) fails,

ERROR:dbus.connection:Unable to set arguments ({},) according to signature None: : Unable to guess signature from an empty dict
Traceback (most recent call last):
  File "./caller.py", line 159, in _connection_added_cb
    offer_tube(connection, handle, self.TUBE_SERVICE)
  File "./caller.py", line 272, in offer_tube
    address = chan[CHANNEL_TYPE_DBUS_TUBE].Offer({})
  File "/usr/lib64/python2.6/site-packages/dbus/proxies.py", line 140, in __call__
    **keywords)
  File "/usr/lib/python2.6/site-packages/dbus/connection.py", line 620, in call_blocking
    message.append(signature=signature, *args)
ValueError: Unable to guess signature from an empty dict

I don't understand the problem at the moment, but the cause of it is,

$ conary q telepathy-glib --troves
telepathy-glib=/jesse.rpath.org@fl:2-devel/0.7.30-1-1[~!builddocs]
  telepathy-glib:doc=0.7.30-1-1[~!builddocs]
  telepathy-glib:lib=0.7.30-1-1[~!builddocs]
telepathy-glib=/foresight.rpath.org@fl:devel//2/0.7.25-0.1-2[~!builddocs]
  telepathy-glib:devel=0.7.25-0.1-2[~!builddocs]
  telepathy-glib:devellib=0.7.25-0.1-2[~!builddocs]

I.e., the packages are messed up. Maybe some problem with my configuration of conary (e.g. :devel and :devellib troves are not updated together with :doc and :lib).

[Update]: The problem is not solved after "conary update -telepathy-glib:{devel,devellib} telepathy-glib:{devel,devellib}=/jesse.rpath.org@fl:2-devel". I had to update telepathy-gabble as well, from 0.7.26 to 0.7.27.

Wrote this down for future references...

4 comments:

resiak said...

It'll be because we keep changing the DBusTube API, because it's unstable. telepathy-glib knows nothing about C.T.DBusTube or C.T.StreamTube yet, as a result; but the (DRAFT) API implemented in Gabble has changed a few times, so probably your version of Gabble and the spec don't match up.

We think the API is pretty much ready for undrafting, although we did, erm, change the signatures of Offer and Accept yesterday. :)

Jesse said...

Yes, it's probably telepathy-gabble. The problem wasn't fixed until I updated it from 0.7.26 -> 0.7.27.

But days ago it was all OK, maybe those versions of tp-gabble and tp-glib don't work well together?

(I am happy to the un-drafting of the tube spec, you guys are doing a great work :)

zodman said...

you mix version from fl and your repo thats the problem!!!

Jesse said...

@zodman, yeah yeah my fault :P

The problem is that, I can't easily see the cause from the error message I got. So I just written this down, fwiw :)

Post a Comment