ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Igor Vlasenko <vlasenko@imath.kiev.ua>
To: devel@lists.altlinux.org
Subject: [devel] Чисто конкретно по лимитам сборочницы.
Date: Thu, 19 Aug 2021 16:37:01 +0300
Message-ID: <20210819133700.GA22477@dad.imath.kiev.ua> (raw)

Чисто конкретно по лимитам сборочницы.

Уважаемый Дмитрий,
хотел бы пояснить, почему я считаю вашу принципиальную позицию
по лимитам сборочницы неверной.

В статистике есть такое понятие, как нормальное, или Гауссовское,
распределение. Его плотность - характерная колоколообразная кривая.
Ваша позиция была бы корректной, если бы разброс параметров сборки
подчинялся бы нормальному распределению.
Для него действительно легко указать компактную область (лимиты),
выход за которые -- вероятность слишком ничтожная, чтобы ее учитывать.

Однако если мы посмотрим на реальное распределение плотности
параметров пакетов в Сизифе, то мы увидим кривую, похожую на график
Гамма-распределения, к примеру, хи-квадрат распределения,
с пиком и выраженным длинным хвостом в сторону бесконечности.
Для Гамма-распределения, увы, если мы хотим, чтобы постоянные лимиты
работали, их приходится неоправданно завышать (делать слишком далекими
от пика). Они и сейчас слишком неудобные (далекие от пика).

К примеру, сейчас, если тесты при сборке пакета сорвутся в
цикл, что-то понемногу выводя (не провоцируя wlimit_time_idle),
то для пакета, собирающегося 3-5 мин. придется ждать 10 часов,
чтобы сработал wlimit_time_elapsed.
Если бы wlimit_time_elapsed коррелировал со временем сборки пакета,
то время ожидания падения сборки было бы более человекоориентированным.

Если же цикл активно выводит, то сработает wlimit_bytes_written.
Я сталкивался с такими логами сборки в процессе разработки
logoved. Лог в пол гигабайта, где первые 50-100 килобайт - осмысленный
лог сборки, затем 500 мегабайт мусора, затем сообщение, что наконец
сработал wlimit_bytes_written.

Логовед такой лог парсил десятки минут. Да и лишний трафик напрягает.
Если бы wlimit_bytes_written коррелировал с размером нормального лога пакета,
то логи FTBFS были бы гораздо более человеко- и машинно- читабельными.

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

Ранее вы могли бы отмахиваться от моих проблем, в духе
"viy@ - исключение, и пакеты у него неправильные".
Хотя опять же, по статистике, наибольшая вероятность первым нарваться
на проблемы у пользователя с наибольшей и наиболее разнообразной
по типам и системам сборки пакетной базой.

Стоило уже тогда не игнорировать проблему.

Сейчас же проблемы уже начали расползаться по все большему кругу
пользователей. Я только сейчас осознал, что теперь к клубу
униженных и угнетенных (viy@, zerg@,...) прибавился и cas@,
ведь он взялся за java-1.8.0-openjdk.
Судя по success-логам пересборки, для пакета
azure-sdk-for-ruby-20200316-alt1.2
считанные доли процента отделяют его от срабатывания wlimit_bytes_written.

еще больше пакетов превысили порог времени сборки в 4 часа на x86_64,
их майнтайнерам приготовиться к нежданчикам с wlimit_time_elapsed на armh.

И хотел бы сказать, Дмитрий, что и у вас самих далеко не нулевая
вероятность самому вступить в "клуб униженных и угнетенных лимитами".
Во всяком случае, в прошлом письме, когда я привел 4 примера пакетов,
которые не вписывались в wlimit_time_elapsed,
я забыл про пример cross-gcc, который я в свое время по просьбе уважаемых
коллег импортировал в Сизиф. Тогда cross-gcc тоже не вписывался в
wlimit_time_elapsed, и по согласованию с уважаемым заказчиком сборки,
я кастрировал сборку, выбросив часть cross-архитектур, которые
заказчику были не нужны. Получается, уже gcc5 был не так уж далек от
лимита, а последние gcc всего в 4 раза меньше лимита.

Хотелось бы понять, Дмитрий, если новый LibreOffice 8 или gcc13
не впишется в лимиты сборочницы, сохраните ли вы свою принципиальную
позицию, будете вы резать gcc на подпакеты, или тихо сдвинете лимиты,
поскольку "это другое, понимать надо"?


-- 

I V


             reply	other threads:[~2021-08-19 13:37 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-19 13:37 Igor Vlasenko [this message]
2021-08-19 14:16 ` [devel] обнаружение зациклившихся сборок Dmitry V. Levin
2021-08-19 15:05   ` Alexey V. Vissarionov
2021-08-19 15:13     ` Dmitry V. Levin
2021-08-19 17:20       ` Alexey Gladkov
2021-08-19 14:31 ` [devel] Чисто конкретно по лимитам сборочницы Alexey Gladkov
2021-08-19 15:04   ` Paul Wolneykien
2021-08-19 18:44     ` Dmitry V. Levin
2021-08-19 17:37   ` Andrey Savchenko
2021-08-19 18:14     ` Alexey Gladkov
2021-08-19 18:20     ` Dmitry V. Levin

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=20210819133700.GA22477@dad.imath.kiev.ua \
    --to=vlasenko@imath.kiev.ua \
    --cc=devel@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

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