fail программирование
Я гений. Я перепутал erase и substr ( нет, я знаю как это было возможно ). В результате вместо того чтобы удалить уже отправленные по сети байты, прога сохраняла себе их в буфер заново. В результате данные портились, клиенты висли, ну короче все было плохо. Что было хуже всего — это случалось ну очень редко. Так редко, что тестеры за пару дней работы программы не словили ни одного результата. В таком виде программа работала несколько лет ( и что забавно работала правильно ) ибо в ту ветку кода выполнение никогда не приходило. Отчего же оно туда не приходило? Дело в том, что обычно происходило так: из файла считывался кусок, и сразу же отправлялся в сеть целиком. Однако же в редких случаях из файла могло считаться более одного куска, до того как кто-то из них уйдет в сеть, и вот тогда происходил бада-бум! Трудноуловимый баг, ибо все зависело от скорости работы с диском, общей загруженности диска, ну и того как ОС работала с асинхронными сетевыми вызовами.