Regarding Performance of DBUS library

rajnikant jachak rajnikantjachak at gmail.com
Wed Aug 29 05:18:32 PDT 2012


Hi All,
I have typical client/server applications (files are attached). Client
signals server (req) and server in turn responds it (resp). There are two
threads within client application. One thread listen for response signals
from server and other sends request signals to server. Client application
works fine if it makes one request to server after every seconds. But when
client floods server with multiple requests (10 req in 10 miliseconds),
server serves those request fine. But client dumping core (Abort Signal)
while receiving the responses. Following is the message at client side.

23456: assertion failed "!(connection)->have_connection_lock" file
"dbus-connection.c" line 1505 function _dbus_connection_handle_watch
  ./myclient [0x8059245]
  ./myclient [0x805a65a]
  ./myclient [0x804e04a]
  ./myclient(_dbus_connection_handle_watch+0x51) [0x80632fd]
  ./myclient(dbus_watch_handle+0xd0) [0x805cc7c]
  ./myclient [0x804f299]
  ./myclient [0x804f68f]
  ./myclient [0x804d581]
  /lib/tls/i686/libc.so.6(__libc_start_main+0xba) [0x4916fd8e]
  ./myclient [0x804d175]
Aborted (core dumped)

BackTrace of Core file
--------------------------------
(gdb) bt
#0  0x49180a04 in raise () from /lib/tls/i686/libc.so.6
#1  0x49181f00 in abort () from /lib/tls/i686/libc.so.6
#2  0x0805a67a in _dbus_abort () at dbus-sysdeps.c:94
#3  0x0804e04a in _dbus_real_assert (condition=Variable "condition" is not
available.
) at dbus-internals.c:931
#4  0x080632fd in _dbus_connection_handle_watch (watch=0x809a430,
condition=1, data=0x809a788) at dbus-connection.c:1505
#5  0x0805cc7c in dbus_watch_handle (watch=0x809a430, flags=1) at
dbus-watch.c:700
#6  0x0804f299 in _dbus_loop_iterate (loop=0x809a8a0, block=1) at
dbus-mainloop.c:842
#7  0x0804f68f in _dbus_loop_run (loop=0x809a8a0) at dbus-mainloop.c:906
#8  0x0804d581 in main (argc=5, argv=0xbfe28864) at myclient.c:168

I'm using, dbus-1.6.4 version.

1. Is client dumping core cause, DBUS library is not able to sustain for
this much of load?
2. Is it recommended to use DBUS library in multi-threading applications?
3. Am I missing any important aspect related to DBUS in my client/server
application?

Client-Server works fine for 10 req in 10 miliseconds, if server wont
respond back to client for requests.
Please advice. Thanks in advance.


-- 
Regards,
Rajnikant Jachak.

The pessimist sees difficulty in every opportunity. The optimist sees the
opportunity in every difficulty.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dbus/attachments/20120829/a3c31f42/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: myserver.c
Type: text/x-csrc
Size: 3387 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dbus/attachments/20120829/a3c31f42/attachment-0002.c>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: myclient.c
Type: text/x-csrc
Size: 4175 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dbus/attachments/20120829/a3c31f42/attachment-0003.c>


More information about the dbus mailing list