Thread (10 messages) read the whole thread 10 messages, 3 authors, 2010-02-21

Re: [PATCH] Fix signal watch when a service name is given

From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Date: 2010-02-17 09:06:43

Hi Vinicius,

On Wed, Feb 17, 2010 at 2:34 AM, Vinicius Gomes
[off-list ref] wrote:
Hi Luiz,

On Tue, Feb 16, 2010 at 12:58 PM, Luiz Augusto von Dentz
[off-list ref] wrote:
quoted
Hi Marcel,

On Tue, Feb 16, 2010 at 5:37 PM, Marcel Holtmann [off-list ref] w=
rote:
quoted
quoted
Hi Luiz,
quoted
quoted
This should fix g_dbus_add_signal_watch when a service like org.blue=
z is given.
quoted
quoted
quoted

Updating since the last one was broken.
I also think that in check_service() we actually have a missing call to
dbus_pending_unref(). That would cause a memory leak.
There is a call to =A0dbus_pending_call_unref on check_service after
dbus_pending_call_set_notify, which I took a look and seems correct
but we have another problem there since we never cancel the pending
call if the filter is unregister. Anyway there is a leak on
service_reply where I don't call dbus_message_unref, so I will come up
with another update soon.
This is fixed on obexd, but as far as I could see it is not (yet?)
applied on the other users
of gdbus.
Hmm, that why I see it, I used obexd to test this not bluetoothd as
(probably) Marcel did, anyway we still need to store and cancel the
pending call if we really want the watches to be truly cancelable.
And, from what I tested the greater problem is that the timeout of the
pending call would still
trigger. This would cause libdbus to terminate the application, if
libdbus was built with debug enabled,
because one assert would fail (the message is "trying to remove an
nonexistent timeout" or
=A0something like it). The timeout still triggering is the reason we
don't see the pending call leaking.
@Marcel: So before you apply this you should really apply Vinicius
patch to the rest of projects: bluez, ofono, connman...

--=20
Luiz Augusto von Dentz
Computer Engineer
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help