Clients seeing EPIPE, dbus-daemon 1.8.16, how to debug?
chmorgan at gmail.com
Tue Jun 2 16:59:37 PDT 2015
Hmm. Did you have a fix for that in mind?
I should be able to manufacture a better test case for that here by
adding even more dbus calls when our script starts up.
On Tue, Jun 2, 2015 at 7:54 PM, Andrey Sidorov <andrey.sidorov at gmail.com> wrote:
> In node-dbus I buffer all outgoing messages until underlying transport
> stream is established and then send them all at once. My guess was that
> EPIPE is caused by not checking backpressure properly
> On Wed, Jun 3, 2015 at 9:48 AM, Chris Morgan <chmorgan at gmail.com> wrote:
>> On Tue, Jun 2, 2015 at 4:37 PM, Thiago Macieira <thiago at kde.org> wrote:
>> > On Monday 01 June 2015 21:21:16 Chris Morgan wrote:
>> >> Hello.
>> >> I'm using dbus-daemon on a systemd distro built under yocto on an arm
>> >> system, a BBB (1GHz Arm), 512MB ram, emmc.
>> >> At startup we've got two clients, one c# using dbus-sharp, and another
>> >> nodejs using node-dbus (https://github.com/sidorares/node-dbus) that
>> >> are both seeing EPIPE from the dbus client socket as reported via
>> >> strace.
>> > For real pipes, EPIPE indicates that you're writing while there's no
>> > pipe
>> > reader. For sockets, that happens only when a connected socket's peer
>> > has shut
>> > down reception. In other words, the socket has disconnected.
>> > dbus-daemon only disconnects you if you send invalid stuff. So I advise
>> > you to
>> > check those two bindings for protocol correctness.
>> >> I'm guessing that the high cpu and io load at startup may be the cause
>> >> of the issue. Those clients are relatively heavy to startup, one being
>> >> mono, the other node. This particular issue isn't seen on the desktop
>> >> under F21 or Arch with the same software.
>> > No, that can't be it. If the socket never connected, you'd get ENOTCONN,
>> > not
>> > EPIPE.
>> >> Is there some way to debug the reason behind the EPIPE from the
>> >> dbus-daemon side? I tried compiling with the --enable-verbose-tracing
>> >> and enabling DBUS_VERBOSE=1 but that produces a ton of output that
>> >> seems unrelated to the EPIPE issue.
>> > The message failed to parse. Use strace on your application and capture
>> > the
>> > all the messages sent after the last time the bus sent anything to you.
>> > One of
>> > those messages is invalid.
>> > --
>> > Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
>> > Software Architect - Intel Open Source Technology Center
>> > PGP/GPG: 0x6EF45358; fingerprint:
>> > E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
>> > _______________________________________________
>> > dbus mailing list
>> > dbus at lists.freedesktop.org
>> > http://lists.freedesktop.org/mailman/listinfo/dbus
>> I'll do this and see if I can't get a working and non-working case. We
>> did that before but I don't have it handy, I'll reproduce and report.
>> Interestingly, same sw never has the issue running on the desktop
>> environment. That would be the identical node-dbus and dbushsarp
>> modules and code. And it appears to be related to system load.
>> Is there anything that the comes to mind that the clients might not be
>> handling in those particular cases? We looked into the gdbus code and
>> didn't see any retries etc but if it is a protocol issue I'm wondering
>> if its related to the high load and something not being handled in a
>> corner case of the protocol.
>> dbus mailing list
>> dbus at lists.freedesktop.org
More information about the dbus