Некоторое время назад на сервере 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. Я по возможности проверил все подсистемы - вроде всё работает. Однако,
некоторые проблемы всё-таки возможны; будем устранять их по мере
обнаружения.
Никита