On 01/06/2018 14:28, Sergio Lopez wrote: > On Fri, Jun 01, 2018 at 02:16:59PM +0200, Paolo Bonzini wrote: >> On 01/06/2018 14:05, Sergio Lopez wrote: >>>>> Instead of adding explicit handling of EPIPE, shouldn't the code be >>>>> rewritten to treat -1 return && errno != EAGAIN as fatal? >>>> Yes, exactly this code is already broken for every single errno >>>> value, not simply EPIPE. It needs fixing to treat '-1' return code >>>> correctly instead of retrying everything. >>> Given that EAGAIN is already taken care of in >>> chardev/char.c:qemu_chr_write_buffer, in which cases should we retry? Or >>> should we just drop all the tsr_retry logic? >> >> It's not handled there, the call from qemu_chr_fe_write has write_all == >> false. > > You're right. So should we just retry only for -1 && errno == EAGAIN and > just ignore the error otherwise?
Probably, yes. Paolo