Bug Report: SIGPIPE during call to ev_async_send

Marc Lehmann schmorp at schmorp.de
Sun Oct 11 14:41:47 CEST 2015

On Fri, Oct 09, 2015 at 11:55:17AM -0700, Benjamin Mahler <benjamin.mahler at gmail.com> wrote:
> First of all, thanks for the great library, the Mesos project has been
> using heavily in production for many years. Recently, we've encountered a
> rare issue in which SIGPIPE occurs during a call to ev_async_send.

Thanks for you great analysis, and while I haven't exatcly followed it yet,
it looks correct. I'll see how it can be fixed (most likely, by not
recreeating the pipe in this case atg all).

I do hope its rare, as this is essentially an epoll bug workaround, which is
extremely costly.

One question though: is there a specific reason why you go against the
recommendation to ignore SIGPIPE? SIGPIPE is essentially for shell filters

> This seems to confirm the issue! With eventfd enabled the write will
> silently fail rather than trigger SIGPIPE. This also seems problematic, yes?

Fortunately no, because events can get lost normally under this condition,
so libev already assumes there might have been an event and checks.

So ignoring SIGPIPE should work reliably as a workaround.

                The choice of a       Deliantra, the free code+content MORPG
      -----==-     _GNU_              http://www.deliantra.net
      ----==-- _       generation
      ---==---(_)__  __ ____  __      Marc Lehmann
      --==---/ / _ \/ // /\ \/ /      schmorp at schmorp.de
      -=====/_/_//_/\_,_/ /_/\_\

More information about the libev mailing list