Make-initrd development discussion
 help / color / mirror / Atom feed
* [make-initrd] polld и проверка наличия /root/sbin/init
@ 2023-04-06  1:28 Антон Мидюков
  2023-04-06  6:00 ` Leonid Krivoshein
  2023-04-06  9:29 ` Alexey Gladkov
  0 siblings, 2 replies; 6+ messages in thread
From: Антон Мидюков @ 2023-04-06  1:28 UTC (permalink / raw)
  To: make-initrd

Здравствуйте

Предыстория: https://bugzilla.altlinux.org/44111

Заглавный вопрос: "в каком случае может быть так, что init в смонтированном корне в первые секунды нет, а потом оно чудесным образом появляется?"

Мне кажется, ответ найден: "При распараллеливании процесса монтирования корня (из сквоша, как минимум) на медленном сетевом соединении или достаточно медленном локальном накопителе".
Сейчас проблема стала хорошо воспроизводиться на ядре 6.2 при подключении по nfs или загрузке через ventoy и монтировании сквоша (без предварительной загрузки сквоша в память) на многоядерных процессорах.
Если ядро одно, то проблемы нет (проверено в виртуалке).
В ядре включили алгоритм монтирования оверлея CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU, и это проблему усугубило.
Но проблему крайне редко можно было поймать и раньше.

Отсюда выводы:
1. Факт монтирования корня недостаточное условие, существует переходный процесс монтирования
2. Обнаружение /sbin/init также не является достаточным условием, что можно продолжать загрузку, переходный процесс может оказаться длинным

Гипотеза о переходном процессе основана на сопоставлении двух логов chaind.log и polld.log
Ошибка об отсутствии /sbin/init была выдана на 1 секунду раньше, чем было завершено монтирование оверлея (оно занимало две секунды).

И другая проблема, вытекающая из этих:
bootchain после монтирования /sbin/init совершает ещё действия, поэтому нужно дождаться его выполнения.
В случае bootchain было бы надёжным запускать polld только тогда, когда он завершил свою работу.
Такое в принципе возможно?

-- 
С уважением, Антон Мидюков <antohami@basealt.ru>


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-04-09 20:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-06  1:28 [make-initrd] polld и проверка наличия /root/sbin/init Антон Мидюков
2023-04-06  6:00 ` Leonid Krivoshein
2023-04-06 22:27   ` Leonid Krivoshein
2023-04-07 13:05     ` Alexey Gladkov
2023-04-06  9:29 ` Alexey Gladkov
2023-04-09 20:18   ` Leonid Krivoshein

Make-initrd development discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/make-initrd/0 make-initrd/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 make-initrd make-initrd/ http://lore.altlinux.org/make-initrd \
		make-initrd@lists.altlinux.org make-initrd@lists.altlinux.ru make-initrd@lists.altlinux.com
	public-inbox-index make-initrd

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.make-initrd


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git