When an async operation is performed in the C client, the client will attempt to send the command to the server if this would not block.
When this send reports an error (eg: EPIPE) this is reported up to the async message, but the return code is not stored and checked, making it impossible for the user of the c client library to identify this case.
This can eventually trigger an assertion in some IO libraries, eg libev, because the file descriptor libev is watching is not associated with a valid stream.
- links to