Bug 16071

Summary: service dm должен выключаться первым
Product: Sisyphus Reporter: Anton Farygin <rider>
Component: xinitrcAssignee: placeholder <placeholder>
Status: CLOSED WORKSFORME QA Contact: Andrey Cherepanov <cas>
Severity: normal    
Priority: P2 CC: boyarsh, glebfm, ldv, mike, placeholder, rider, stanv
Version: unstable   
Hardware: all   
OS: Linux   

Description Anton Farygin 2008-06-17 15:54:07 MSD
Наткнулись на забавный race, который вылезает при использовании автологина:
иногда не срабатывает выключение компьютера из xfce в livecd. Система остаётся подвешенной на смене runlevel с 5-ого на 6-й и с запущенным приглашением xdm.

Проблема заключается в следующем:
при выключении компьютера первым выполняется скрипт splash.sh, который делает при stop смену терминала с текущего на первый для отображения сплеша с помощью chvt. Алгоритм работы chvt предполагает ожидание выполнения команды на смену терминала (VT_WAITCONSOLE, по моему). В момент отправки команды poweroff происходит выходит из xfce (и из autologin) и запуск xdm, который меняет текущую консоль на 7-ю. 
проблема вылезает в том случае, если chvt уже выполнил смену vt на 1, и после этого xdm сменил её на 7-ю, но chvt ещё не начал делать VT_WAITCONSOLE. Соответственно chvt висит неопределённо долго, пока кто-то не сменит консоль на первую.

Предлагается service dm останавливать первым, в этом случае xdm (или другой dm) не будет запущен и мы избавимся от этого race.

Данное исправление так же необходимо для branch/4.0 и branch/4.1
Comment 1 Michael Shigorin 2012-06-14 14:45:47 MSK
См. тж. bug #27444.
Comment 2 Anton Farygin 2018-11-13 19:27:33 MSK
Не актуально на современном Sisyphus/systemd