ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] [bugzilla-daemon@altlinux.ru: [Bug 34347] Странный временный нуль-маршрут ломает сетевую rootfs]
@ 2018-05-28 16:19 Arseny Maslennikov
  2018-05-30  0:42 ` Leonid Krivoshein
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Arseny Maslennikov @ 2018-05-28 16:19 UTC (permalink / raw)
  To: devel, Leonid Krivoshein; +Cc: mike, boyarsh

[-- Attachment #1: Type: text/plain, Size: 7752 bytes --]

On Thu, May 24, 2018 at 03:14:39AM +0300, Leonid Krivoshein wrote:
> По предыдущему опыту желающих тестировать и ревьювить такое мало, если
> не сказать "нет совсем".

Я готов содействовать по мере наличия времени.
Нам в ACL пропагатора (пока его ещё не закопали) нужен кто-то, кто готов
мониторить возможность сетевой загрузки дистрибутивов, без этого ошибки
исправляться не будут. Насколько мне известно, текущий состав ACL просто
сильно загружен.

https://bugzilla.altlinux.org/34347
https://bugzilla.altlinux.org/34320

Пользуясь случаем, всё-таки прошу одобрить таск 206842, исправляющий
баги 34347 и 34320. Если код слишком плохой даже для пропагатора,
я поправлю, мне не жалко. :)

> ...такие вещи обсуждать лучше в devel@.

Тогда пойдёмте в devel@!

> Например, вот эту цитату:
> 
> Servers that respond SHOULD only use option 43 to return the vendor-specific
> information to the client.
> из RFC-2132 9.13 трактуют по-разному, вплоть до того, что получив от клиента
> опцию 60 (Vendor Class Identifier) DHCP-сервер должен ему возвращать только
> значение опции 43 (Vendor Specific Information), в которой закодирован и
> TFTP-сервер, и имя файла-образа, а опции 66 (next-server) и 67 (filename) при
> этом должны игнорироваться.

Когда я это реализовывал, я решал общую задачу вычленения
DHCP-сообщений от пропагатора из общей массы трафика. Для этого можно
было снабдить сообщения опцией 60 (так, как сейчас в таске; так же
поступает dhcpcd), либо, например, опцией 77 (так делает iPXE).
Опцию 77 описывает RFC 3004; из этого документа легко сделать вывод, что
она вообще предназначена для самоидентификации со стороны
клиента либо категории его пользователя:

} DHCP clients implementing this option SHOULD allow users to enter one
} or more user class values.

Что касается трактовки «Servers that respond SHOULD only use option 43
to return the vendor-specific information to the client», посмею предположить,
что здесь по правилам грамматики английского языка подразумевалось
не разговорное «only» в начале предложения, а «серверам СЛЕДУЕТ заносить 
особенную информацию только лишь в опцию 43». Как-то оно менее абсурдно
в такой интерпретации звучит.

Большинство option-ROMs сетевых карт заполняет опцию 60 чем-то вроде
"PXEClient:ARCH:0007:UNDI:003010", или в последнее время
"HTTPClient:Arch:00016:UNDI:003001". Сервер, который им бы на это
отвечал тарабарщиной в опции 43, не был бы пригоден к использованию.

К тому же строчка вроде
«ALT-Propagator-20180601-alt1:Linux-4.9.99-std-def-alt1:amd64»
передаёт очень ценную информацию и совершенно бесповоротно описывает
вендора DHCP-клиента, а именно Alt Linux Team.

> я уже говорил, где у нас в сетевой загрузке совершенно точно нарушен
> стандарт и на что это влияет
Хоть я и не настаиваю, но прошу всё же посвятить в курс, ибо сейчас этого
нигде в непосредственной близости не задокументировано.
Связано ли это с root-path?

----- Forwarded message from bugzilla-daemon@altlinux.ru -----

Date: Thu, 24 May 2018 03:14:41 +0300 (MSK)
From: bugzilla-daemon@altlinux.ru
To: arseny@altlinux.org
Subject: [Bug 34347] Странный временный нуль-маршрут ломает сетевую rootfs

https://bugzilla.altlinux.org/34347
Component: Sisyphus/propagator

--- #13 Leonid Krivoshein <klark.devel@gmail.com> 2018-05-24 03:14:39 ---
(В ответ на комментарий №12)
> С пропагатором 20180423-alt1 сетевые карточки действительно подхватываются
> (спасибо, Леонид!), но проблема из сабжа всё же ещё не решена.

Проблему с нуль-маршрутом я действительно не решал, хоть и видел ваш патч,
поскольку мало что в этом понимаю. А что масштабно потестировали новую версию
пропагатора -- вам отдельное спасибо!

> Прошу желающих/заинтересованных потестировать, а тех,
> кто в ACL — одобрить таск №206842 с исправлением ошибки.

Предлагаю анонсировать максимально масштабно и в devel@, и в sisyphus@ хотя бы.
По предыдущему опыту желающих тестировать и ревьювить такое мало, если не
сказать "нет совсем". А в данном случае тестирование ещё более сложное,
поскольку нужны шлюзы. Код посмотрел и даже есть что сказать, но такие вещи
обсуждать лучше в devel@. Например, вот эту цитату:

Servers that respond SHOULD only use option 43 to return the vendor-specific
information to the client.

из RFC-2132 9.13 трактуют по-разному, вплоть до того, что получив от клиента
опцию 60 (Vendor Class Identifier) DHCP-сервер должен ему возвращать только
значение опции 43 (Vendor Specific Information), в которой закодирован и
TFTP-сервер, и имя файла-образа, а опции 66 (next-server) и 67 (filename) при
этом должны игнорироваться.

Но я не уверен в правильности такой трактовки RFC-2132/4361/etc и исхожу из
того, что вы лучше понимаете, что делаете. Георгию Курячему я уже говорил, где
у нас в сетевой загрузке совершенно точно нарушен стандарт и на что это влияет.


-- 
You reported the bug.

https://bugzilla.altlinux.org/e (basic email parameters)
https://bugzilla.altlinux.org/s (additional subscription)

----- End forwarded message -----

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

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

* Re: [devel] [bugzilla-daemon@altlinux.ru: [Bug 34347] Странный временный нуль-маршрут ломает сетевую rootfs]
  2018-05-28 16:19 [devel] [bugzilla-daemon@altlinux.ru: [Bug 34347] Странный временный нуль-маршрут ломает сетевую rootfs] Arseny Maslennikov
@ 2018-05-30  0:42 ` Leonid Krivoshein
  2018-05-30  1:34 ` Leonid Krivoshein
  2018-05-30  4:43 ` Anton Farygin
  2 siblings, 0 replies; 6+ messages in thread
From: Leonid Krivoshein @ 2018-05-30  0:42 UTC (permalink / raw)
  To: ALT Linux Team development discussions


28.05.2018 19:19, Arseny Maslennikov пишет:
> On Thu, May 24, 2018 at 03:14:39AM +0300, Leonid Krivoshein wrote:
>> По предыдущему опыту желающих тестировать и ревьювить такое мало, если
>> не сказать "нет совсем".
> Я готов содействовать по мере наличия времени.
> Нам в ACL пропагатора (пока его ещё не закопали) нужен кто-то, кто готов
> мониторить возможность сетевой загрузки дистрибутивов, без этого ошибки
> исправляться не будут. Насколько мне известно, текущий состав ACL просто
> сильно загружен.

Тоже могу поучаствовать в меру занятости, раз уж пришлось в него окунуться.

Справедливости ради: моё задание ревьювил rider@, тестировали перед 
пропуском в Сизиф и p8, в том числе, ребята из Обнинска. Корректная 
сетевая загрузка для нас актуальна, так что ещё одна площадка (ВМК МГУ) 
будет отличным подспорьем!


>> я уже говорил, где у нас в сетевой загрузке совершенно точно нарушен
>> стандарт и на что это влияет
> Хоть я и не настаиваю, но прошу всё же посвятить в курс, ибо сейчас этого
> нигде в непосредственной близости не задокументировано.
> Связано ли это с root-path?

Поставил в копию на баг #34889 (застолбил номерочек, первое сообщение и 
заголовок лучше сразу пропустить). Если коротко, то да: next-server и 
root-path.

Кстати, в этом баге я начал про IP и путь к ISO. И так совпало, что в 
баге #34347 вы их тоже прописываете руками в загрузчике, чтобы 
воспроизвести. Тогда как alterator-netinst "из коробки" их не 
прописывает, полагаясь на DHCP-сервер. И там же вы говорите о 
недоступности для вас конфигурации DHCP-сервера.

Это принципиально: либо вы передаёте эти опции пропагатору через 
загрузчик, либо он их ловит в ответах от DHCP-сервера. В случае 
PXE-загрузки -- да, их можно прописать на том же сервере в default, но 
это всё-таки совсем другой use-case.


-- 
Best regards,
Leonid Krivoshein.



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

* Re: [devel] [bugzilla-daemon@altlinux.ru: [Bug 34347] Странный временный нуль-маршрут ломает сетевую rootfs]
  2018-05-28 16:19 [devel] [bugzilla-daemon@altlinux.ru: [Bug 34347] Странный временный нуль-маршрут ломает сетевую rootfs] Arseny Maslennikov
  2018-05-30  0:42 ` Leonid Krivoshein
@ 2018-05-30  1:34 ` Leonid Krivoshein
  2018-06-11 10:11   ` Arseny Maslennikov
  2018-05-30  4:43 ` Anton Farygin
  2 siblings, 1 reply; 6+ messages in thread
From: Leonid Krivoshein @ 2018-05-30  1:34 UTC (permalink / raw)
  To: ALT Linux Team development discussions


28.05.2018 19:19, Arseny Maslennikov пишет:
> Пользуясь случаем, всё-таки прошу одобрить таск 206842, исправляющий
> баги 34347 и 34320. Если код слишком плохой даже для пропагатора,
> я поправлю, мне не жалко. :)

Видимо я не спец в нулевых маршрутах, поэтому мало чем могу быть 
полезен. :) Но строчка assert((sz - sp) == 1); вызвала спортивный 
интерес: как поведёт себя приложение с PID=1, если утверждение окажется 
ложным, с учётом того, что в опциях сборки нет NDEBUG. Один не 
закомментированный assert() в init.c есть, это будет второй.


-- 
Best regards,
Leonid Krivoshein.



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

* Re: [devel] [bugzilla-daemon@altlinux.ru: [Bug 34347] Странный временный нуль-маршрут ломает сетевую rootfs]
  2018-05-28 16:19 [devel] [bugzilla-daemon@altlinux.ru: [Bug 34347] Странный временный нуль-маршрут ломает сетевую rootfs] Arseny Maslennikov
  2018-05-30  0:42 ` Leonid Krivoshein
  2018-05-30  1:34 ` Leonid Krivoshein
@ 2018-05-30  4:43 ` Anton Farygin
  2 siblings, 0 replies; 6+ messages in thread
From: Anton Farygin @ 2018-05-30  4:43 UTC (permalink / raw)
  To: ALT Linux Team development discussions, Arseny Maslennikov,
	Leonid Krivoshein
  Cc: mike, boyarsh

28.05.2018 19:19, Arseny Maslennikov пишет:
> On Thu, May 24, 2018 at 03:14:39AM +0300, Leonid Krivoshein wrote:
>> По предыдущему опыту желающих тестировать и ревьювить такое мало, если
>> не сказать "нет совсем".
> Я готов содействовать по мере наличия времени.
> Нам в ACL пропагатора (пока его ещё не закопали) нужен кто-то, кто готов
> мониторить возможность сетевой загрузки дистрибутивов, без этого ошибки
> исправляться не будут. Насколько мне известно, текущий состав ACL просто
> сильно загружен.
У нас есть механизм тестирования через специальную службу. Можете 
сделать test-only задание и отдать на проверку sotor@altlinux

Это без вычитки кода, просто проверка функционала. Если на что-то нужно 
обратить внимание при создании стенда - напишите и это тоже.


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

* Re: [devel] [bugzilla-daemon@altlinux.ru: [Bug 34347] Странный временный нуль-маршрут ломает сетевую rootfs]
  2018-05-30  1:34 ` Leonid Krivoshein
@ 2018-06-11 10:11   ` Arseny Maslennikov
  2018-06-12 21:34     ` Leonid Krivoshein
  0 siblings, 1 reply; 6+ messages in thread
From: Arseny Maslennikov @ 2018-06-11 10:11 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 2912 bytes --]

On Wed, May 30, 2018 at 04:34:23AM +0300, Leonid Krivoshein wrote:
> 
> 28.05.2018 19:19, Arseny Maslennikov пишет:
> > Пользуясь случаем, всё-таки прошу одобрить таск 206842, исправляющий
> > баги 34347 и 34320. Если код слишком плохой даже для пропагатора,
> > я поправлю, мне не жалко. :)
> 
> Видимо я не спец в нулевых маршрутах, поэтому мало чем могу быть полезен. :)
> Но строчка assert((sz - sp) == 1); вызвала спортивный интерес: как поведёт
> себя приложение с PID=1, если утверждение окажется ложным, с учётом того,
> что в опциях сборки нет NDEBUG.

Как и любое другое, завершится со всеми вытекающими последствиями (я
этим вопросом тоже задался, когда готовил исправление).

С другой стороны, код, в котором такое утверждение под assert() ложно,
содержит логическую ошибку и должен быть исправлен до попадания в сизиф.
Именно так его применяют, например, в (извините) systemd — деймон, который
падает со скрипом, да ещё сообщает место, куда смотреть, лучше, чем
"работающий" деймон с утекающей памятью, или такой, который просто
продолжает творить некоторую известную глупость, в то время как разработчик
не знает горя. Да, даже если это PID 1, в таком случае — тем более.

assert() в нашем случае упрощает тестирование: увидя, что "система
загрузилась" (пропагатор сделал всё необходимое), мы точно знаем, что
определённой глупости не будет, вместо того, чтобы на это надеяться.

> Один не закомментированный assert() в init.c
> есть, это будет второй.
> 

Вообще-то можно было реализовать так, чтобы не нуждаться в дополнительной
проверке.
Коли assert() здесь считают инструментом для слабых духом, я подумал и
решил переписать этот сегмент — тег 20180606-alt1.
Так что пока второго assert() не будет :)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [devel] [bugzilla-daemon@altlinux.ru: [Bug 34347] Странный временный нуль-маршрут ломает сетевую rootfs]
  2018-06-11 10:11   ` Arseny Maslennikov
@ 2018-06-12 21:34     ` Leonid Krivoshein
  0 siblings, 0 replies; 6+ messages in thread
From: Leonid Krivoshein @ 2018-06-12 21:34 UTC (permalink / raw)
  To: devel


11.06.2018 13:11, Arseny Maslennikov пишет:
> On Wed, May 30, 2018 at 04:34:23AM +0300, Leonid Krivoshein wrote:
>> 28.05.2018 19:19, Arseny Maslennikov пишет:
>>> Пользуясь случаем, всё-таки прошу одобрить таск 206842, исправляющий
>>> баги 34347 и 34320. Если код слишком плохой даже для пропагатора,
>>> я поправлю, мне не жалко. :)
>> Видимо я не спец в нулевых маршрутах, поэтому мало чем могу быть полезен. :)
>> Но строчка assert((sz - sp) == 1); вызвала спортивный интерес: как поведёт
>> себя приложение с PID=1, если утверждение окажется ложным, с учётом того,
>> что в опциях сборки нет NDEBUG.
> Как и любое другое, завершится со всеми вытекающими последствиями (я
> этим вопросом тоже задался, когда готовил исправление).
>
> С другой стороны, код, в котором такое утверждение под assert() ложно,
> содержит логическую ошибку и должен быть исправлен до попадания в сизиф.
> Именно так его применяют, например, в (извините) systemd — деймон, который
> падает со скрипом, да ещё сообщает место, куда смотреть, лучше, чем
> "работающий" деймон с утекающей памятью, или такой, который просто
> продолжает творить некоторую известную глупость, в то время как разработчик
> не знает горя. Да, даже если это PID 1, в таком случае — тем более.

Разница между демоном, который крутится в stage2 месяцами, и инитом с 
PID=1 в initramfs/stage1 очевидна. Для демона утечки памяти -- "мина 
замедленного действия", пропагатор же ими весь напичкан (был?). И 
ничего: всё "прощается" и забывается при переходе в stage2. Если же 
упадёт инит, в журнал уже ничего не попадёт: последнее, что мы увидим в 
консоли -- хвост от паники ядра. Мы даже не поймём, что случилось и почему.


> assert() в нашем случае упрощает тестирование: увидя, что "система
> загрузилась" (пропагатор сделал всё необходимое), мы точно знаем, что
> определённой глупости не будет, вместо того, чтобы на это надеяться.

Проверялись длины строк (адреса), зависящие от конкретной машины. В этой 
ситуации assert() слишком жестковат в качестве средства отладки. 
Поскольку надеяться можно будет на вашей машине, но так ли это будет на 
других?..


>> Один не закомментированный assert() в init.c
>> есть, это будет второй.
> Вообще-то можно было реализовать так, чтобы не нуждаться в дополнительной
> проверке.
> Коли assert() здесь считают инструментом для слабых духом, я подумал и
> решил переписать этот сегмент — тег 20180606-alt1.
> Так что пока второго assert() не будет :)

assert() безумно полезная вещь, но из пропагатора я бы его везде 
повыкидывал... от греха подальше. В этом пакете даже ключик NDEBUG будет 
"миной замедленного действия". И хорошо, что поменяли этот фрагмент, 
вопросов будет меньше.


-- 
Best regards,
Leonid Krivoshein.



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

end of thread, other threads:[~2018-06-12 21:34 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-28 16:19 [devel] [bugzilla-daemon@altlinux.ru: [Bug 34347] Странный временный нуль-маршрут ломает сетевую rootfs] Arseny Maslennikov
2018-05-30  0:42 ` Leonid Krivoshein
2018-05-30  1:34 ` Leonid Krivoshein
2018-06-11 10:11   ` Arseny Maslennikov
2018-06-12 21:34     ` Leonid Krivoshein
2018-05-30  4:43 ` Anton Farygin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/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 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

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


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