Resolved: Code improperly using MSG_NOSIGNAL with send(). Rx: Include MSG_NOSIGNAL in all calls to send(). Discussion: SO_NOSIGPIPE is set once on the pipe, code originally written with expectation that MSG_NOSIGNAL works the same. This is false: MSG_NOSIGNAL needs to be specified on every send() call.