Summary: | Unproper LOCKFILE name in init script | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Nikolay A. Fetisov <naf> |
Component: | open-iscsi | Assignee: | Alexey Shabalin <shaba> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | evg, mav, mike, shaba |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Nikolay A. Fetisov
2010-06-27 10:54:21 MSD
Я думаю вы ошибаетесь. 60 subsys=${i#/etc/rc.d/rc$runlevel.d/K??} 61 62 splash_update "$subsys" 63 64 # Check if the subsystem is already up. 65 [ -f "/var/lock/subsys/$subsys" -o -f "/var/lock/subsys/$subsys.init" ] || continue В данном случае проверяется $subsys.init, т.е. open-iscsi.init Вы пробовали переименовать как вы предлагаете и проблема решается? (In reply to comment #1) > 60 subsys=${i#/etc/rc.d/rc$runlevel.d/K??} Здесь subsys становится равным 'open-iscsi', после чего > 65 [ -f "/var/lock/subsys/$subsys" -o -f "/var/lock/subsys/$subsys.init" ] || continue развёртывается в [ -f "/var/lock/subsys/open-iscsi" -o -f "/var/lock/subsys/open-iscsi.init" ] || continue LOCKFILE создаётся как /var/lock/subsys/iscsi - т.е., оба условия не выполняются и идёт переход на очередной шаг цикла, без остановки сервиса. Эта проблема остановки сервиса именно в процессе выключения/перезагрузки машины, непосредственно вызов '/etc/init.d/open-iscsi stop', разумеется, отработает. А etc/rc.d/rc, для определения, что нужно останавливать, проверяет список K* в соответствующем rcN.d/ (который есть для всех установленных в систему сервисов, в т.ч. и выключенных), и по их именам определяет имена соответствующего lock-файлов. И останавливает только те, для которых lock-файлы присутствуют - т.е. те, которые можно считать работающими. Как я понимаю, имя LOCKFILE'а осталось после переименования скрипта из iscsi.init. С текущим именем LOCKFILE'а при выключении/перезагрузке машины вызова 'service open-iscsi stop' не выполняется. Замена вида ------------------------------ --- a/rc.d/init.d/open-iscsi +++ b/rc.d/init.d/open-iscsi @@ -26,7 +26,7 @@ ISCSID=iscsid ISCSIADM=iscsiadm PIDFILE=/var/run/iscsid.pid -LOCKFILE=/var/lock/subsys/iscsi +LOCKFILE=/var/lock/subsys/open-iscsi RETVAL=0 attach_nodes() ------------------------------ проблему решает. open-iscsi-2.0.871-alt4 (текущий Sisyphus, t6/p6) - без изменений. С текущим значением LOCKFILE=/var/lock/subsys/iscsi в init-скрипте при перезапуске/выключении системы остановка сервиса не происходит, в итоге при наличии смонтированных томов ISCSI они остаются до выключения сети, и система виснет на этапе размонтирования локальных файловых систем. Установил open-iscsi-2.0.871-alt4, поднял соединение с SAN, настроил на автозагрузку. После этого машина стала сильно (минуты две) задумываться при перезагрузке (выключать не пробовал) между "Stopping kernel logger service: [OK]" и "Stopping syslog-ng service: [OK]". Заметил, что в списке останавливаемых сервисов не присутствует ничего связаного с iscsi. Попробовал до перезагрузки сказать service open-iscsi stop - помогло. Попробовал применить указанный патч. Помогло. Теперь система не тупит при перезапуске И в списке останавливаемых сервисов есть open-iscsi и мой IQN. Fixed in 2.0.871-alt5 А можно alt5 в t6 положить? Для исправления проблемы с остановкой сервиса при выключении/перезагрузке... |