So indeed this turned out to be true. The daemon is getting something bad (an invalid message) from my process B. <br><br>Turning debug verbose on the daemon shows this...<br><br>289: handling read watch 0xcfe30 flags = 1<br>

289: do_reading: fd = 6<br>289: check_read_watch: fd = 6<br>289:&nbsp;&nbsp; setting read watch enabled = 1<br>289:&nbsp;&nbsp; UNLOCK: protected_change_watch<br>289:&nbsp;&nbsp; LOCK: protected_change_watch<br>289:&nbsp; read 844 bytes<br>289: Initial peek at header says we don&#39;t have a whole message yet, or data broken with invalid code 13
<br>289: Corrupted message stream, disconnecting<br>289: _dbus_transport_disconnect start<br>289: socket_disconnect<br><br>Since my process B just handles the filter message and does not send anything, i can only think of two things...
<br><br>1. Some thread in my process has a socket descriptor wrong, hence is dumping things by mistake into the dbus socket fd.<br><br>2. There is some bug in dbus code, that is sending this invalid message.<br><br>To rule out 2. i have a question that may be someone can help with.
<br><br>If we assume process B just has code to set an addmatch and recv a signal and<br>If the daemon passes a signal message to B, B does not have to ack or send anything back correct?. It should just get the message and handle it and go its way. When things work correctly i see this is indeed the case, the daemon sends something and does not hear back from Process B.
<br><br>The whole thing seems to be very time sensitive w.r.t process B, if dbus_verbose is turned on B this does not happen. <br><br>Thanks.<br>-K<br><br><br><div><span class="gmail_quote">On 4/11/07, <b class="gmail_sendername">

Thiago Macieira</b> &lt;<a href="mailto:thiago@kde.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">thiago@kde.org</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Krishna R wrote:<br>&gt;Further probing lead to disconnect signal being the cause of<br>&gt; do_io_error() in dbus-transport-socket.c, it was called because<br>&gt; do_reading() which reads from the socket and gets bytes_read = 0. That
<br>&gt; means the socket was closed on the other end?<br><br>Yes.<br><br>&gt;The question i have is why is the dbus-daemon closing the socket? Or is<br>&gt; it?<br><br>It is and it does so because it received an invalid message. If you strace
<br>the daemon or if you run it in debug mode, it should say why it did that.<br><br>&gt;dbus-daemon, A and B are started one after another at boot in the<br>&gt;foreground. Is there some problem where the session bus is not fully
<br>&gt;initialized? That may not be because atleast one signal from A reaches<br>&gt; B.<br><br>I don&#39;t think so.<br><br>--<br> Thiago Macieira - thiago (AT) <a href="http://macieira.info" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
macieira.info</a> - thiago (AT) 
<a href="http://kde.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">kde.org</a><br>&nbsp;&nbsp;PGP/GPG: 0x6EF45358; fingerprint:<br>&nbsp;&nbsp;E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358<br><br></blockquote>
</div><br><br clear="all"><br>-- <br>P.R.Krishna