Make-initrd development discussion
 help / color / mirror / Atom feed
From: "Антон Мидюков" <antohami@basealt.ru>
To: make-initrd@lists.altlinux.org
Subject: [make-initrd] polld и проверка наличия /root/sbin/init
Date: Thu, 6 Apr 2023 08:28:20 +0700
Message-ID: <7d19288d-96a9-186c-768d-95a09b02c225@basealt.ru> (raw)

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

Предыстория: 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>


             reply	other threads:[~2023-04-06  1:28 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-06  1:28 Антон Мидюков [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7d19288d-96a9-186c-768d-95a09b02c225@basealt.ru \
    --to=antohami@basealt.ru \
    --cc=make-initrd@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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