[devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Сб Авг 25 22:33:50 MSD 2007


On Sat, Aug 25, 2007 at 02:16:46PM +0400, Alexey I. Froloff wrote:
> * Alexey Tourbin <at@> [070825 13:40]:
> > Разруливать, по-моему, должен не столько товарищ, сколько maintainer.
> > То есть ему через несколько часов приходит письмо: "ой-ой-ой, вы
> > ДЕЙСТВИТЕЛЬНО хотите отправить это дело в сизиф"?  И maintainer
> > отвечает: "да-да-да, я знаю, исправленные пакеты почти готовы".
> Это АЦЦКИ медленно.  Вот, например, thresh@ залил новый FLAC со
> сменой API и одновременно NMU на несколько зависимых пакетов.
> Или либа с новым SONAME и compat пакет.  Если их перемещать по
> одному, то будут новые unmet'ы в репозитарии и сломанная сборка.
> Ждать ещё по несколько часов для каждого пакета?

Я рассматриваю более пессимистическую ситуацию: maintainer направляет
новый пакет и НЕ ЗНАЕТ, как изменятся характеристики сизифа на этом
пакете.  Ответственный maintainer, который заранее подготовил NMU,
это хорошо, но технологичность должна подразумевать защиту от сбоев
по пессимистическому сценарию.

Опять же, я не против транзакции из нескольких пакетов, если все они
проводятся одним человеком.  Однако NMU настораживает.  Техника
получения NMU до конца не отработана.

Насчет "будет медленно" не очень согласен.  Входящий flac-*.src.rpm
сейчас "задевает" 161 пакет, включая те приложения в которых FLAC для
сборки по сути и не используется (а ставится только одна только
библиотека libflac).

> > > Насколько сложнее проверять и пересобирать пакеты "пачками"?
> > Наверное, если нужно провести сразу несколько пакетов в виде транзакции,
> > то наверное нужно предусмотреть специальную операцию "отправить на вход
> > группу пакетов".
> Поскольку из одного src получается больше-или-равно одного
> бинарного пакета, принципиальной разницы я не вижу.

Дело в том, что нужно уметь ответить на вопрос: КТО именно и ЗА СЧЕТ
ЧЕГО именно сломал ЭТОТ пакет (который перестал собираться).  Чем меньше
будет неопределенности, тем лучше (будет понятно, что нужно откатывать,
или хотя бы кого трясти).

С другой стороны, хотелось бы, конечно, обеспечивать атомарную смену
soname'ов в репозитарии.  Но при числе вовлеченных maintainer'ов больше
2-3 это становится проблемно...

Кстати смену soname'ов можно обнаруживать автоматически.  Просто нужно
сравнивать зависимости у пакетов, свежепротестированных пересборкой,
и уже собранных пакетов.

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

К сожалению, работа управдома для меня достаточно непрозрачна, и,
насколько я знаю, нигде на git.altlinux.org управдомовские скрипты
не публикуются.

Плюс есть ещё параллельные транзакции.  От них ЗЕЛО голова болит, я их
пока даже не обсуждал.  Грубо говоря, начиная говорить о транзакциях,
есть два подхода.  Первый подход -- каждый пакет собирается и
тестируется на логически "приватной копии" Сизифа.  То есть каждый
входящий src.rpm пакет берёт "длинный" read-lock на текущий сизиф, а
"сводильщик" будет работать в режиме writer starvation.  Другой крайний
вариант -- один большой общий отстойник для всех, который может
полностью или частично перемещаться в сизиф.  Кстати это не настолько
глупо, как может показаться с первого взгляда.  Промежуточный вариант --
изоляция на уровне maintainer'а.  Ну и что будет если при сведении
"сводильщик" обнаруживает пересечения, тоже непонятно.  Ладно, это уже
вопросы на более отдалённое будущее, когда основные проблемы будут
решены.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20070825/6c09ccee/attachment-0001.bin>


Подробная информация о списке рассылки Devel