Comment 15 for bug 1362333

Revision history for this message
Andy Whitcroft (apw) wrote :

Debugging the issue some I can say that (for me) the issue seems to be when the server sends the answer response to the client. It is running in "ply_boot_connection_send_answer" when it gets a SIGPIPE in the middle, implying the client has gone:

  ply_boot_connection_send_answer()
  {
  [...]
      if (!ply_write (connection->fd,
                      PLY_BOOT_PROTOCOL_RESPONSE_TYPE_ANSWER,
                      strlen (PLY_BOOT_PROTOCOL_RESPONSE_TYPE_ANSWER)) ||
          !ply_write_uint32 (connection->fd,
                             size) ||
          !ply_write (connection->fd,
                      answer, size))
          ply_trace ("could not finish writing answer: %m");
  [...]

Now the client does wait for the server to respond before exiting blocking until the user hits return, and it reports a failure was sent. This however could come out for a lost connection also. The fact that it does wait hints that the response triggers the closure. Need more debug as to what if anything is received.