Автор Тема: Зависание при выключении (systemctl poweroff) [КОСТЫЛЬ]  (Прочитано 6359 раз)

Оффлайн mrs

  • Участник
  • *
  • Сообщений: 138
  • Paragraf 8
После нудачной перезагрузки.
И еще момент, перезагрузка всегда проходит правильно... а выключение зависает периодически...

Вот как раз минут 20 назад зависла, сейчас сниму логи и выложу...

Оффлайн mrs

  • Участник
  • *
  • Сообщений: 138
  • Paragraf 8
journalctl -b -1
http://pastebin.com/YDwAXRNZ

Цитировать
dmesg
http://pastebin.com/ew5s4j9T
тут какие-то ворнинги по поводу ACPI, но по-моему не критичные.

UPD: приложил к сообщению журналы
« Последнее редактирование: 05.07.2015 23:21:50 от mrs »

Оффлайн mrs

  • Участник
  • *
  • Сообщений: 138
  • Paragraf 8
насколько я вижу в журнале только какая-то проблема с отмонтированием /run/user/500, но по-моему это не критично... или ошибаюсь?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
А вот тут что?
Цитировать
Jul 05 22:30:29 comp-phenom-ii-b45dc1 LVM: Failed to initialize library context for activation generator.
Jul 05 22:30:29 comp-phenom-ii-b45dc1 systemd-sysv-generator[223]: Configuration file /lib/systemd/system/nslcd.service is marked executable. Please remove executable permission bits. Proceeding anyway.
Jul 05 22:30:29 comp-phenom-ii-b45dc1 systemd[1]: livecd-evms.service: Cannot add dependency job, ignoring: Unit livecd-evms.service failed to load: No such file or directory.
Jul 05 22:30:29 comp-phenom-ii-b45dc1 systemd[1]: livecd-net-eth.service: Cannot add dependency job, ignoring: Unit livecd-net-eth.service failed to load: No such file or directory.
Jul 05 22:30:29 comp-phenom-ii-b45dc1 systemd[1]: livecd-setlocale.service: Cannot add dependency job, ignoring: Unit livecd-setlocale.service failed to load: No such file or directory.
Jul 05 22:30:29 comp-phenom-ii-b45dc1 systemd[1]: livecd-net-eth.service: Cannot add dependency job, ignoring: Unit livecd-net-eth.service failed to load: No such file or directory.

Оффлайн mrs

  • Участник
  • *
  • Сообщений: 138
  • Paragraf 8
LVM томов у меня нет, поэтому видимо ругается...

а livecd-*.service похоже упущены в regular сборках... я ничего не удалял вручную, 100%.
там помню при установке с livecd, самый последний завершающий шаг (когда кликаешь кнопку Finish) не выполняется - говорит что не может отмонтировать какую-то директорию. я и закрываю просто инсталлятор. вот, возможно, какие-то postinstall действия не выполняются из-за этого... отсюда и livecd-*.service -файлы... в общем я уже и не обращаю внимание... давно заметил, но вроде как на установку системы особо не влияет.

в логе нашел еще момент: lightdm при выключении завершается с ошибкой. но вроде бы так же и на 64-битной версии, и если выключать из консоли...
« Последнее редактирование: 06.07.2015 00:49:49 от mrs »

Оффлайн mrs

  • Участник
  • *
  • Сообщений: 138
  • Paragraf 8
в логе нашел еще момент: lightdm при выключении завершается с ошибкой. но вроде бы так же и на 64-битной версии, и если выключать из консоли...

да, на 64-битной lightdm тоже ругается при завершении:Jul 05 23:39:16 runx systemd[1]: lightdm.service: Main process exited, code=exited, status=1/FAILURE
Jul 05 23:39:16 runx systemd[1]: lightdm.service: Unit entered failed state.
Jul 05 23:39:16 runx systemd[1]: lightdm.service: Failed with result 'exit-code'.
Jul 05 23:39:16 runx lightdm[501]: Failed to get D-Bus connection
однако, это не мешает 64-битной системе корректно отрабатывать poweroff.
« Последнее редактирование: 06.07.2015 01:10:17 от mrs »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Так, а в момент зависания какая ситуация, можно с картинками.
- Что выдаётся в этот момент на 12-й экран.
- Что работает, что не работает - клавиатура, мышка, и в том чимсле клавиши Ctrl+Alt+F(1-7,12), Alt+SysRq+(H...)

Оффлайн mrs

  • Участник
  • *
  • Сообщений: 138
  • Paragraf 8
Так, а в момент зависания какая ситуация, можно с картинками.
- Что работает, что не работает - клавиатура, мышка, и в том чимсле клавиши Ctrl+Alt+F(1-7,12), Alt+SysRq+(H...)

зависает только при выключении из иксов... т.е. если переключиться в консоль Ctrl+Alt+F(2-12) и оттуда выключать - комп не зависает при выключении.

процесс следующий:
- жму на кнопку клавиатуры Power (ну или через главное меню пункт Shutdown, или из XTerm'a - systemctl poweroff)
- после экран может стать полностью черным или просто остаться интерфейс рабочего стола без изменений
- через секунду-две слышу как щелкают винты и отключаются полностью. похоже, головки паркуются, из-за чего характерный щелчок слышен.
- в этот же момент отключается какой-то из куллеров (у меня их три - на видеокарте, на процессоре и в блоке питания), какой именно не ясно.
- и все, комп как будто умер (на клаву и мышь вообще не реагирует), крутятся оставшиеся куллеры и горит индикатор питания на системнике.
- на экране - статическая картинка рабочего стола или черного квадрата.

обычно на этом моменте комп должен полностью вырубиться, но как говорил ранее только 3 раза из 10 он выключается полностью, в иных случаях зависает в этом состоянии...

потом если на системнике нажать Reset, то винт с MBR-ом не оживает после POST-та, так что выйти из этого состояния можно только зажав на системнике Power на 3 секунды (или выключить комп из розетки)

еще данная проблема __не__ появляется на:
- 32-битной системе с необновленным софтом.
- если на 32-битной системе обновить только ядро.
- на 64-битной системе с любым софтом и ядром.

- Что выдаётся в этот момент на 12-й экран.
Если есть способ автоматически, перед зависанием, переключится в 12 консоль, подскажите как?.. пробовал с помощью chvt, с различным задержками - безрезультатно. Но, по-моему, в консоли будет что-то очень похожее на журнал, приведенный выше.

Похоже что комп зависает в самом конце процесса выключения. Когда всем устройствам должен быть послан сигнал отключения, но видимо этого не происходит - что-то из железа отключается, а что-то нет.
« Последнее редактирование: 06.07.2015 15:27:27 от mrs »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
потом если на системнике нажать Reset, то винт с MBR-ом не оживает после POST-та, так что выйти из этого состояния можно только зажав на системнике Power на 3 секунды (или выключить комп из розетки)

А что <ALT>+<SysRq>+B не работают?

https://ru.wikipedia.org/wiki/SysRq
Цитировать
SysRq в UNIX/Linux

Клавиша SysRq — единственная прямая связь с ядром, которая работает всегда, если работает ядро, так как соответствующие комбинации напрямую перехватываются ядром и соответствующий код является частью драйвера клавиатуры (см. Magic SysRq key (англ.)русск.). При помощи некоторых комбинаций клавиш можно заставить систему аварийно сбросить данные на диски, перемонтировать все файловые системы в режим «только чтение», перезагрузиться или перезапустить графическую подсистему даже при зависшей системе.
Цитировать
То есть, например, для аварийной синхронизации данных следует выполнить последовательность Alt + SysRq + S, далее Alt + SysRq + U. После этого можно жать на сброс или, что то же самое, Alt + SysRq + B.

Более правильно экстренную перезагрузку стоит проводить, зажав клавиши Alt + SysRq и с интервалом в 2-3 секунды нажать последовательно: R E I S U B

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
А что у вас за видеодрайвер? Может в нём проблема?

Что выдаёт
lshw -s displayиз пакета lshw.

Оффлайн mrs

  • Участник
  • *
  • Сообщений: 138
  • Paragraf 8
Комбинации с SysRq не работают.

Видеокарта GeForce 210 - простенький ускоритель (по современным меркам). Драйвер nouveau, тот что из Сизифа устанавливается. Вывод lshw -s display чуть попозже добавлю. На 64-битной системе, кстати, установлены nvidia драйвера (тоже из Сизифа), но по-моему это не проблема... Драйвера то как модули ядра устанавливаются, после обновления ядра (без обновления остального софта) было все в порядке.

Сейчас наверное установлю вновь систему и буду по-очереди обновлять компоненты системы и проверять, висит или нет...

Оффлайн mrs

  • Участник
  • *
  • Сообщений: 138
  • Paragraf 8
Что выдаёт
Код: [Выделить]
lshw -s display
из пакета lshw.
  *-display
       description: VGA compatible controller
       product: GT218 [GeForce 210]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       version: a2
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: driver=nouveau latency=0
       resources: irq:43 memory:fd000000-fdffffff memory:d0000000-dfffffff memory:ce000000-cfffffff ioport:dc00(size=128) memory:fea80000-feafffff[\code]

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Комбинации с SysRq не работают.

Чтобы SysRq работал:
Цитировать
# cat /etc/sysctl.conf
#
# For boolean variables 0 is disabled, 1 is enabled.
# See sysctl(8) for more details.

# net.ipv4 options now stored in separate config file.
# for etcnet, see /etc/net/sysctl.conf
# for net-scripts, see /etc/sysconfig/network-scripts/sysctl.conf

# enable/disable the magic SysRq key.
#
kernel.sysrq = 1

# set core pattern or disable core dump.
kernel.core_pattern = /dev/null

# Indicates the amount of address space which a user process will be
# restricted from mmaping.  Since kernel null dereference bugs could
# accidentally operate based on the information in the first couple of
# pages of memory userspace processes should not be allowed to write to
# them.  By default, this value in kernel is set to 0 and no protections
# will be enforced by the security module.  Setting this value to
# something >= 32k will allow the vast majority of applications to work
# correctly and provide defense in depth against future potential kernel
# bugs.  This value is somewhat architecture-dependent, though.
# Recommended default for i586 is 65536.
vm.mmap_min_addr = 65536
# cat /proc/sys/kernel/sysrq
1
# rpm -qf /etc/sysctl.conf
startup-0.9.8.38-alt1
# sysctl --help|grep '\-p,'
  -p, --load[=<file>]  read values from file
$ man sysctl | col -bfx | sed -n '46p'
       -p     Загрузить настройки из указанного файла или /etc/sysctl.conf, если файл не указан.

Оффлайн mrs

  • Участник
  • *
  • Сообщений: 138
  • Paragraf 8
Чтобы SysRq работал:
Спасибо что напомнили, но клавиша в настройках включена, и при работающей системе комбинации работают...

Все дело в том, что комп зависает тогда, когда в ОЗУ уже нет ядра, по-видимому. Да и скорее всего память уже тоже не функционирует в этот момент.
« Последнее редактирование: 07.07.2015 04:12:00 от mrs »

Оффлайн mrs

  • Участник
  • *
  • Сообщений: 138
  • Paragraf 8
Починил. Вот такой костыль получился:

-- запускаю Иксы на седьмой виртуальной консоли, для этого в /etc/lightdm/lightdm.conf добавил строку:
minimum-vt=7
-- после завершения lightdm.service меняю консоль на первую, для этого в /lib/systemd/system/lightdm.servise добавил строку:
ExecStopPost=/bin/chvt 1
-- и чтобы сервис не зависал на смене виртуальной консоли, пришлось патчить /usr/sbin/lightdm:
hexdump -ve '1/1 "%.2x"' /usr/sbin/lightdm | \
sed "s/2d6e6f7674737769746368/2020202020202020202020/g" | \
xxd -r -p > ~/lightdm.patched
mv -f /usr/sbin/lightdm /usr/sbin/lightdm.old
cp -f ~/lightdm.patched /usr/sbin/lightdm

Что именно не так работает без этого костыля, не знаю. Вероятно последовательность остановки сервисов часто становится неподходящей для корректного отключения железа. Интересно, а может ли systemd останавливать сервисы в определенном порядке?..
« Последнее редактирование: 07.07.2015 21:07:54 от mrs »