PG>> Проверь 1.1a-50. PG>> Если всё нормально, выпущу 1.0.3.
AV> 24674 pts/10 S 0:00 binkd: server manager (listen binkp) AV> 24675 pts/10 R 0:06 binkd: client manager AV> 24676 pts/10 Z 0:00 [binkd] <defunct> AV> 24677 pts/10 Z 0:00 [binkd] <defunct> AV> 24678 pts/10 Z 0:00 [binkd] <defunct> AV> 24679 pts/10 Z 0:00 [binkd] <defunct> AV> 24680 pts/10 Z 0:00 [binkd] <defunct> AV> 24681 pts/10 Z 0:00 [binkd] <defunct> AV> 24682 pts/10 Z 0:00 [binkd] <defunct> AV> 24683 pts/10 Z 0:00 [binkd] <defunct>
AV> Что-то мне это стадо зомбей не нравится... Кто на них wait держит?
Что держит?
AV> Опа... Да там полная красота творится:
AV> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND AV> 24675 gremlin 20 0 3712 972 620 R 99.9 0.0 2:26.26 binkd
AV> Не, это явно не релиз.
Понял, спасибо, буду пытаться воспроизвести у себя. Откатись на 1.1a-49 или на релиз.
PG>> Было сломано, похоже, начиная с 1.0a-610, т.е. в версиях 1.0.0 - PG>> 1.0.2 этот баг есть. Проблема в том, что sleep() в клиентменеджере PG>> прерывается сигналом при завершении клиента, и следующий клиент PG>> запускается раньше времени. Проявляется только в fork-версиях, и PG>> особенно мешает, когда клиент быстро завершается, не отправив PG>> почту - например, при connection refused.
AV> Ууууу... совсем студенческая ошибка.
Зная тебя, я как-то и не сомневался в твоей оценке. Только что ж тебе помешало её найти и дать правильный патч? ;-) Большинство ошибок, когда их объясняешь, вполне понятны и кажутся детскими (в том числе свои собственные). Любой программист это знает, и потому предпочитает не высмеивать чужие ошибки. А если высмеивать - нужно быть на 100% уверенным, что ты как программист как минимум на две головы выше, и никогда не сделал бы ни такой ошибки, ни любой другой ошибки подобного уровня. Извини, но патчи, которые ты иногда предлагаешь для binkd, позволяют предположить, что ты вовсе не программист, и никогда им не был. Ну и, я надеюсь, ты понимаешь, что я в своём описании сильно упростил ошибку, чтобы она была понятна пользователям. Я не писал о том, что sleep() иногда возвращает значение (количество "недоспанных" секунд), иногда нет; что иногда происходит ожидание семафора, которое сигналом не прерывается; что в большинстве случаев прерывание слипа - правильное поведение, не приводящее ни к каким нежелательным последствиям, и т.д. Используешь девелоперскую версию - значит, решил помогать разработчикам в тестировании. Так помогай, а не оценивай уровень ошибок (не будучи при этом специалистом). За репорт спасибо.