Некоторое время назад на сервере zigzag возникла странная проблема. В какой-то момент (судя по всему) процессы переставали получать сигналы, уведомляющие их о завершении работы дочерних нитей. В результате дочерние нити оставались в состоянии zombie неограниченно долго. На практике это за несколько минут переполняло таблицу процессов, в результате чего сервер становился неработоспособен.
Случается это достаточно часто - слишком часто, чтобы продолжать жить в таком режиме.
Ни выяснить причину этой проблемы, ни даже понять условия её возникновения так и не удалось. Единственное, что устанавливается однозначно - это проблема ядра. Судя по всему, влияет какая-то редко встречающаяся комбинация факторов, волей случая происходящая у нас.часто.
Сообщать о подобной ошибке разработчикам ядра достаточно бесперспективно. Особенно с учётом того, что разработка ядра семейства 2.4 в настоящее время заморожена (security & critial bug fixes only).
В связи с этим было принято решение ПЕРЕВЕСТИ СЕРВЕР zigzag НА ЯДРО 2.6
Что и было проделано вечером 31 марта.
В настоящее время на сервере работает ядро 2.6.4, поставленное из официального пакета Debian.
НА СЕРВЕРЕ ПРОИЗОШЛИ СЛЕДУЮЩИЕ ВИДИМЫЕ ПОЛЬЗОВАТЕЛЯМ ИЗМЕНЕНИЯ:
1. При записи cdrom более не используется эмуляция SCSI поверх IDE. Это значит, что программы, расчитанные для работы в режиме эмуляции SCSI, больше работать не будут. А именно, не будут работать программы gcombust и xcdroast. k3b работает нормально. При использовании cdrecord из командной строки следует указывать device=/dev/hdc для нижнего привода и devuice=/dev/hdd для верхнего привода.
2. Есть надежда, что проблемы, из-за которых пользователям был закрыт доступ к дискете и к usb flash на сервере, в ядре 2.6 нет. Поэтому запрет на использование usb и дискет на сервере пока снят - пользователям разрешено монтировать и дискету, и usb flash. Если проблемы возобновятся, будем думать, что с этим делать.
3. (разработчикам многонитевых программ) Теперь на сервере работает (и используется по умолчанию) NPTL (а не linuxthreads).
4. Я по возможности проверил все подсистемы - вроде всё работает. Однако, некоторые проблемы всё-таки возможны; будем устранять их по мере обнаружения.
Никита