Неблокирующие сокеты, ПО работает в своеобразном режиме прокси. Т.е. принимает с одного сокета данные, потом их отправляет в другой. В определенный момент другой хост перестает принимать данные, возвращается -1, errno установлен в EWOULDBLOCK, данные помещаются в буффер, на сокет цепляется EPOLLOUT. Действительно, когда клиент готов, EPOLLOUT срабатывает, но. write возвращает -1, опять с EWOULDBLOCK. fd тот же. В момент приема tcpdump показывает отправление данных, видимо из буффера отправки (хотя netstat'ом не видно что он был O_o). Позже epoll_wait возвращает сокет как готовый к записи, но write, опять же, вываливается нахрен с -1/EWOULDBLOCK. Причем ни одного успешного write в сокет с момента первого фейла не было.
Что это может быть за фигня такая?