Жил-был сервер ubuntu 9.04 и особо никого не трогал, но вот черт меня дернул в пятницу его проапгрейдить до 9.10 (ядро 2.6.31-15).
Про мелкие неприятности с самбой, апачем и еще чем-то (уже не помню) можно не говорить, но вот последняя фича - пока мною не познана :(
Была старая прога, которая стала segfault-ить. Откопал сорцы, поправил (там действительно была бага). Дальше хуже - новая версия не подключается к серверу по TCP. Причем всё происходит на одной машине.
Пробую telnet-ом «прозвонить» - глухо, не отбивает, но и не соединяется. Посмотрел через strace серверный процесс, честно ждет в select(). Копаю дальше - netstat показывает listen-соединение и полу-открытое новое при попытке подключения, tcpdump видит syn-запросы в одну сторону. Серверный процесс также спит в select().
Дальше собственно «чудо» - после танцов с бубном путаю консоли и запускаю telnet не на сервере, а с локальной машины - подключается. Тут-же пробую локально не сервере - нифига. Пробую на сервере локально подключиться telnet-ом к различным портам (как прослушиваемым нак и нет) - результат отрицательный и одинаковый, как-будто пакеты дропяться.
В iptables пуcто, ipv6 отключал (через /proc/sys). Дальше еще хуже - загрузился предыдущим (2.6.28-16) ядром из 9.04 - таже история.
Если бы с 2.6.28-16 все работало, то я бы свалил на 9.10, но сейчас вообще идей нет куда копать.
По законам Мерфи сервер под нагрузкой...
Кто-то посоветует?