Update on private server running on dbus 1.4.14 (Re: Request for help debugging DBusServer ... (Re: Question ad private DBUS server, how to ...
rony
rony at wu.ac.at
Sat Aug 13 10:28:57 PDT 2011
After building and using dbus 1.4.14 on Ubuntu 64-bit, so far no
segmentation faults have occurred (trying hard for quite some time now),
so definitely the fixes in this version of dbus are a *big* improvement!
However, I could evoke a:
process 28118: arguments to dbus_connection_ref() were incorrect,
assertion "connection->generation == _dbus_current_generation"
failed in file dbus-connection.c line 2629.
This is normally a bug in some application using the D-Bus library.
D-Bus not built with -rdynamic so unable to print a backtrace
Aborted
After rebuilding 1.4.14 with the "-rdynamic" switch the above message
has not occurred anymore.
---
Ad still missing "Disconnected" signal.
Still, the "Disconnected" signal are not emanated, if a client
connection goes away, this problem is still open. Maybe it is also
linked to the connection-related problems above (and below from an
earlier e-mail)?
Currently, the language binding's debug code dumps all signals received
on all client connections, but the "Discarded" signal is not received by
any of them. Is it possible that I am looking at the wrong place for
this signal?
---
Is there a function in dbus that would allow to test whether a
connection is operational (or stalled) ?
If not, shall I file a bug?
---rony
On 12.08.2011 11:33, rony wrote:
> Just a small intermediate update.
>
> On 10.08.2011 13:19, rony wrote:
>> On 10.08.2011 11:42, Simon McVittie wrote:
>>
>>> On Wed, 10 Aug 2011 at 11:31:49 +0200, rony wrote:
>>>
>>>
>>>> The current implementation employs "dbus_server_set_watch_functions()",
>>>> but not "dbus_set_timeout_functions()", because there seems to be no
>>>> need for it.
>>>>
>>>>
>>> Well, that's something you're doing that most users of libdbus don't, so...
>>> Try implementing both, and if bugs still occur, *then* start debugging.
>>>
>>> (For instance, it's not impossible that deferred events are set up by adding
>>> a "timeout after 0 seconds", either now or in the future.)
>>>
>>>
>> Oh, I see! Will do.
>>
> Adding the timeout functions did not change anything (they do not get
> invoked).
>
> So intermittently program crashes occur (when re-running the client
> program repeatedly in the same process) with the private server, and
> there are no "Disconnected" signals when the process that established
> a private connection to the private server ends.
>
> At one point, before a segmentation dump, the server process
> showed the dbus output: "process 11392: The last reference on a
> connection was dropped without closing the connection. This is a
> bug in an application. See dbus_connection_unref() documentation
> for details. Most likely, the application was supposed to call
> dbus_connection_close(), since this is a private connection."
> The only "dbus_connecnon_unref()" in the binding is immediately
> preceeded with "debus_connection_close()". The language binding
> function containing these two statements would be invoked either
> upon Rexx object destruction (the Rexx proxy for the connection)
> or if a "Disconnected" signal was received on that connection.
>
> ... cut ...
>
>>> For thread-safety, ensure that you have the latest D-Bus release from either
>>> the 1.4.x or 1.5.x (master) branch, to fix fd.o #38005;
>>>
>> Will check (have 1.4.6, but that may not be new enough).
>>
> Found that starting with dbus 1.4.12 this fix is incorporated, so will
> have to look how to get that version or newer onto my Ubuntu system
> without breaking anything over the weekend.
>
> ---rony
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dbus/attachments/20110813/ce1b129a/attachment.html>
More information about the dbus
mailing list