Bug 27009

Summary: Не выключается ПК самостоятельно
Product: Branch p6 Reporter: Alexander Shemetov <berkut_174>
Component: NetworkManagerAssignee: Mikhail Efremov <sem>
Status: CLOSED WONTFIX QA Contact: QA p6 <qa-p6>
Severity: normal    
Priority: P3 CC: a.o.liakh, aen, shakirov
Version: не указана   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Логи
none
messages none

Description Alexander Shemetov 2012-02-29 19:38:02 MSK
На ПК изначально установлен Simply Linux 6.0.0 CD.

uname -r
3.0.22-std-def-alt0.M60P.1

После обновления 26.02.2012 комп перестал сам выключаться. При завершении работы на черном фоне висит надпись:

nm-dispatcher.action: Caught signal 15, shutting down...
nm-dispatcher.action: Script '/etc/NetworkManager/dispatcher.d/10-netfs' exited abnormally.

Обсуждение здесь: http://forum.altlinux.org/index.php/topic,17845.0.html
Comment 1 Mikhail Efremov 2012-02-29 19:52:57 MSK
Попробуйте в файле /etc/NetworkManager/dispatcher.d/10-netfs закомментировать строчки:
#                [ $($IP route show | wc -l) -eq 0 ] &&
#                       $SERVICE netfs status >/dev/null 2>&1 &&
#                        $SERVICE netfs stop >/dev/null 2>&1 ||:
Comment 2 Lenar Shakirov 2012-03-01 11:23:46 MSK
#27013 не оно?
Comment 3 Mikhail Efremov 2012-03-01 11:40:42 MSK
Оно. Помечаю эту как дубль, там описание правильнее.

*** This bug has been marked as a duplicate of bug 27013 ***
Comment 4 Andrey Liakhovets 2012-03-03 11:07:43 MSK
Судя по сообщению на форуме, это всё-таки что-то ещё.

Автор, если у вас не починилось, переоткройте, пожалуйста, этот баг и приведите информацию о вашей системе. Начните с того, что у вас выдаёт команда

$ cat /proc/mounts
Comment 5 Andrey Liakhovets 2012-03-03 15:14:40 MSK
> Начните с того, что у вас выдаёт команда
> 
> $ cat /proc/mounts

И ещё:
$ cat /etc/fstab
# chkconfig netfs --list
и содержимое /var/log/messages от начала выключения до следующего старта.

У меня, например, этот кусок /var/log/messages начинается так:
Mar  3 14:59:40 seashell shutdown[7061]: shutting down for system halt (POWERDOWN)
Mar  3 14:59:40 seashell init: Switching to runlevel: 0
Mar  3 14:59:46 seashell plymouth: Activating splash succeeded
Mar  3 14:59:46 seashell kdm: :0[5704]: Fatal X server IO error: Interrupted system call
Mar  3 14:59:46 seashell dm: rundm shutdown succeeded
 ...
Comment 6 Andrey Liakhovets 2012-03-03 16:13:34 MSK
Я у себя посмотрел повнимательнее, как работает с новым NM https://bugzilla.altlinux.org/show_bug.cgi?id=27013#c7 , и вдобавок к нему сделал ещё так (по образу и подобию:):
$ diff -Nau /etc/rc.d/init.d/netfs.orig /etc/rc.d/init.d/netfs
--- /etc/rc.d/init.d/netfs.orig 2011-10-05 20:58:39.000000000 +0400
+++ /etc/rc.d/init.d/netfs      2012-03-03 14:56:39.649179205 +0400
@@ -29,9 +29,12 @@
 NCPMTAB=`grep -vs '^#' /proc/mounts |awk '($3 == "ncp" || $3 == "ncpfs") && ($2 != "/") {print $2}'`
 PANMTAB=`grep -vs '^#' /proc/mounts |awk '($3 == "panfs") && ($2 != "/") {print $2}'`
 
+IP=/sbin/ip
+
 start()
 {
        is_yes "$NETWORKING" || return 0
+       [ "$($IP route show 2>/dev/null | wc -l)" != 0 ] || return 0
 
        [ -z "$NFSFSTAB" ] ||
                action "Mounting NFS filesystems:" mount -a -t nfs,nfs4
@@ -47,6 +50,8 @@
 
 stop()
 {
+       [ "$($IP route show 2>/dev/null | wc -l)" != 0 ] || return 0
+
        if [ -n "$NFSMTAB" ]; then
                UnmountFilesystems 3 5 \
                        '($3 == "nfs" || $3 == "nfs4") && ($2 != "/") {print $2}' \

С такой проверкой в netfs у меня пропали задержки при старте системы, когда стартовавший ранее NM ещё не успел поднять сеть, а netfs уже начал пытаться монтировать.

Почти уверен, что в общем случае так делать нельзя (?), но для моей системы подходит.

Что касается _выключения_ компьютера, - в голову пока приходят только патологические ситуации типа "service netfs stop" после опускания сети, чего вроде не должно быть.
В общем, нужна информация от автора бага.
Comment 7 Alexander Shemetov 2012-03-03 18:27:09 MSK
Раньше вторника не смогу предоставить инфу, уж простите...
Во вторник все что нужно скину и переоткрою.
Comment 8 Alexander Shemetov 2012-03-06 08:12:28 MSK
Created attachment 5359 [details]
Логи
Comment 9 Alexander Shemetov 2012-03-06 08:14:22 MSK
Добавил все, что просили во вложения.
Часть тут приведу.

cat /proc/mounts
rootfs / rootfs rw 0 0
udevfs /dev devtmpfs rw,relatime,size=5120k,nr_inodes=128076,mode=755 0 0
/dev/sda2 / ext4 rw,relatime,user_xattr,acl,barrier=1,data=ordered 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
runfs /run tmpfs rw,relatime,size=5120k,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
shmfs /dev/shm tmpfs rw,relatime 0 0
tmpfs /tmp tmpfs rw,nosuid,relatime 0 0
/dev/sda5 /home ext4 rw,nosuid,relatime,user_xattr,acl,barrier=1,data=ordered 0 0
/etc/auto.tab /mnt/auto autofs rw,relatime,fd=6,pgrp=4417,timeout=5,minproto=5,maxproto=5,indirect 0 0
/etc/auto.avahi /mnt/net autofs rw,relatime,fd=12,pgrp=4417,timeout=120,minproto=5,maxproto=5,indirect 0 0
192.168.112.112:/srv/public/ /mnt/public nfs4 ro,relatime,vers=4,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.112.228,minorversion=0,local_lock=none,addr=192.168.112.112 0 0
192.168.112.112:/srv/obmen /mnt/obmen nfs4 rw,relatime,vers=4,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.112.228,minorversion=0,local_lock=none,addr=192.168.112.112 0 0


cat /etc/fstab
proc		/proc			proc	nosuid,noexec,gid=proc		0 0
devpts		/dev/pts		devpts	nosuid,noexec,gid=tty,mode=620	0 0
tmpfs		/tmp			tmpfs	nosuid				0 0
UUID=96eef21d-2172-4ea4-a9bf-54ef40270ea9	/	ext4	relatime	11
UUID=d9996668-d63a-45ed-b14e-0b0e9d367c83	/home	ext4	nosuid,relatime12
UUID=246ea93c-2156-49e8-bc8a-e12425b9746d	swap	swap	defaults	00
#UUID=8edeb7c6-f6f2-4757-a7ce-1c3834a21b43	/mnt/sda3	ext4 defaults 0 0
/dev/sr0	/media/cdrom	udf,iso9660	ro,noauto,user,utf8	0 0
192.168.112.112:/srv/obmen	/mnt/obmen	nfs	rw,auto,wsize=32768,rsize=32768,intr,nolock	0 0
192.168.112.112:/srv/public	/mnt/public	nfs	ro,auto,wsize=32768,rsize=32768,intr,nolock	0 0


chkconfig netfs --list
netfs          	0:выкл	1:выкл	2:выкл	3:выкл	4:выкл	5:выкл	6:выкл
Comment 10 Andrey Liakhovets 2012-03-06 14:33:41 MSK
(В ответ на комментарий №9)

> cat /proc/mounts
 ...
> /etc/auto.tab /mnt/auto autofs rw,relatime,fd=6,pgrp=4417,timeout=5,minproto=5,maxproto=5,indirect 0 0
> /etc/auto.avahi /mnt/net autofs rw,relatime,fd=12,pgrp=4417,timeout=120,minproto=5,maxproto=5,indirect 0 0
> 192.168.112.112:/srv/public/ /mnt/public nfs4 ro,relatime,vers=4,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.112.228,minorversion=0,local_lock=none,addr=192.168.112.112 0 0
> 192.168.112.112:/srv/obmen /mnt/obmen nfs4 rw,relatime,vers=4,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.112.228,minorversion=0,local_lock=none,addr=192.168.112.112 0 0

> cat /etc/fstab
 ...
> 192.168.112.112:/srv/obmen    /mnt/obmen    nfs    rw,auto,wsize=32768,rsize=32768,intr,nolock    0 0
> 192.168.112.112:/srv/public    /mnt/public    nfs    ro,auto,wsize=32768,rsize=32768,intr,nolock    0 0


> chkconfig netfs --list
> netfs              0:выкл    1:выкл    2:выкл    3:выкл    4:выкл    5:выкл    6:выкл


Видно, что ситуация другая, нежели в #27013: netfs выключен (autofs включен).
И опции _netdev в fstab нет.

Два вопроса:
1)
Из логов не видно существенной задержки при выключении.
Или вы теперь почти сразу выключаете питание при чёрном экране?
2)
Как вы монтируете те ФС, которые nfs ?
Руками? Или у вас это происходит автоматически? autofs?

Приложите содержимое /etc/auto.*

Похоже, к NetworkManager'у это отношения не имеет.
Но можно, ради эксперимента, привести ситуацию к той, что в #27013:
# chkconfig autofs off
# chkconfig netfs on
и добавить опции _netdev к сетевым точкам монтирования в /etc/fstab.
После чего посмотреть, как будет загружаться и выключаться.
Comment 11 Alexander Shemetov 2012-03-06 17:05:40 MSK
Выключаю питание не сразу, жду пару минут.

NFS монтируются через fstab, только автоматически монтироваться они не хотят, даже с опцией auto (почему так не знаю... раньше не помню как было), монтирую с задержкой в 5 с. при включении, через rc.local.
Comment 12 Andrey Liakhovets 2012-03-06 17:24:54 MSK
(В ответ на комментарий №11)
> Выключаю питание не сразу, жду пару минут.
> 
> NFS монтируются через fstab, только автоматически монтироваться они не хотят,
> даже с опцией auto (почему так не знаю... раньше не помню как было), монтирую с
> задержкой в 5 с. при включении, через rc.local.

Ага, то есть, фактически, монтируете "руками".
Тогда /etc/auto.* приводить не надо.

Попробуйте рецепт из c10, даже без выключения autofs:
- # chkconfig netfs on
- добавить опции _netdev к сетевым точкам монтирования в /etc/fstab
(типа 192.168.112.112:/srv/obmen /mnt/obmen nfs4 _netdev,rw,....)
Я, правда, у себя ещё изменил /etc/rc.d/init.d/netfs (см. c6), но и без этого уже работало.
Comment 13 Alexander Shemetov 2012-03-09 10:01:02 MSK
> Попробуйте рецепт из c10, даже без выключения autofs:
> - # chkconfig netfs on
> - добавить опции _netdev к сетевым точкам монтирования в /etc/fstab
> (типа 192.168.112.112:/srv/obmen /mnt/obmen nfs4 _netdev,rw,....)
> Я, правда, у себя ещё изменил /etc/rc.d/init.d/netfs (см. c6), но и без этого
> уже работало.

Так выключается.

Файл /etc/NetworkManager/dispatcher.d/10-netfs вернул к исходному виду! Ничего в нем не закомментировано!
Получается, если шара смонтирована то не выключается... Если вручную перед выключением размонтировать вручную, то выключается. Если загрузиться без автомонтирования шары и потом её вручную смонтировать, то не выключается.

Прикреплю лог messages. Там все описано, что я перед этим делал. Может быть поможет в решении проблемы.
Спасибо.
Comment 14 Alexander Shemetov 2012-03-09 10:02:23 MSK
Created attachment 5369 [details]
messages
Comment 15 Andrey Liakhovets 2012-03-09 11:02:32 MSK
(В ответ на комментарий №13)
> > Попробуйте рецепт из c10, даже без выключения autofs:
> > - # chkconfig netfs on
> > - добавить опции _netdev к сетевым точкам монтирования в /etc/fstab
> > (типа 192.168.112.112:/srv/obmen /mnt/obmen nfs4 _netdev,rw,....)
> > Я, правда, у себя ещё изменил /etc/rc.d/init.d/netfs (см. c6), но и без этого
> > уже работало.
> 
> Так выключается.
> 
> Файл /etc/NetworkManager/dispatcher.d/10-netfs вернул к исходному виду! Ничего
> в нем не закомментировано!

Лучше опять закомментировать. Или обновить NetworkManager -- в новом закомментировано. Влияет на засыпание, см. https://bugzilla.altlinux.org/show_bug.cgi?id=27013

> Получается, если шара смонтирована то не выключается... Если вручную перед
> выключением размонтировать вручную, то выключается. Если загрузиться без
> автомонтирования шары и потом её вручную смонтировать, то не выключается.

Насколько я понимаю (?), без размонтирования сетевых ФС виснет /etc/rc.d/init.d/halt на этапе размонтирования.
Т.е., вряд ли это ошибка NetworkManager'а.
Скорее, логика разработчиков такова: если уж вы монтируете сетевые ФС (что по умолчанию разрешено только root'у), то извольте позаботиться об их отмонтировании, например, включите сервис netfs.
И действительно, как вы подтверждаете, при включенном netfs всё хорошо -- stop этого сервиса при выключении вызывается раньше опускания сети, и все сетевые ФС нормально отмонтируются.

Наверное, можно придумать конфигурацию, когда имеющимися средствами не обойтись, но в простых стандартных случаях всё работает (хотя мне больше нравится поведение netfs из c6). Для более сложных надо смотреть в сторону зависимости между сервисами (systemd ... ?)

В общем, по-моему, этот баг надо преобразовать в feature request на документацию по правильному подключению сетевых ФС (если таковой ещё нет).
Или в некий feature request на полный автомат по правильной настройке старта/стопа системы (???)
Comment 16 Alexander Shemetov 2012-03-09 11:37:09 MSK
Все бы хорошо, только вот с включенным netfs монтирование NFS при старте системы занимает около 30 секунд!
Mounting NFS Filesystems...
и 30 секунд висит...
Comment 17 Andrey Liakhovets 2012-03-09 12:00:06 MSK
(В ответ на комментарий №16)
> Все бы хорошо, только вот с включенным netfs монтирование NFS при старте
> системы занимает около 30 секунд!
> Mounting NFS Filesystems...
> и 30 секунд висит...

Попробуйте изменение из c6 :)
Тогда при старте, пока нет сети (это может быть в случае, если сеть через NM), netfs ничего не будет делать, а затем, при появлении сети, NM ещё раз "дёрнет" netfs.

PS.
Мне тоже хочется от старта/стопа сетевых сервисов чего-то более логичного и обозримого, но пока есть только смутные мысли насчёт зависимостей или насчёт впихивания всего в etcnet.
Или ждать, пока всё это впихнут в NetworkManager?
(см. также https://bugzilla.altlinux.org/show_bug.cgi?id=27013#c5 ).
Comment 18 Alexander Shemetov 2012-03-09 12:26:03 MSK
Проще через rc.local монтировать, а в fstab поставить параметр noauto :-)
Пока так и сделал.
Comment 19 AEN 2012-05-05 11:33:11 MSK
2sem@: ping
Comment 20 Mikhail Efremov 2012-05-05 16:16:22 MSK
(В ответ на комментарий №16)
> Все бы хорошо, только вот с включенным netfs монтирование NFS при старте
> системы занимает около 30 секунд!
> Mounting NFS Filesystems...
> и 30 секунд висит...

Можно попробовать в /etc/sysconfig/NetworkManager раскомментировать NM_CONNECTION_WAIT. Только внимательно прочитать сначала комментарий к этой опции.
Или использовать etcnet.
А вообще, наверно, стоит повесить баг на startup, чтобы сделать в netfs что-то вроде того, что в https://bugzilla.altlinux.org/show_bug.cgi?id=27009#c6.
Comment 21 AEN 2012-05-05 16:18:12 MSK
(В ответ на комментарий №20)
> А вообще, наверно, стоит повесить баг на startup, чтобы сделать в netfs что-то
> вроде того, что в https://bugzilla.altlinux.org/show_bug.cgi?id=27009#c6.

Ну так повесьте.
Comment 22 Mikhail Efremov 2012-05-05 16:48:47 MSK
https://bugzilla.altlinux.org/27303

По поводу же самого NM - я не вижу, что еще можно сделать по этому поводу.
В NM-0.8 появления predown-скриптов ожидать уже точно не стоит.