[sisyphus] карманы

Alexey Tourbin at на altlinux.ru
Пт Май 22 21:38:01 MSD 2009


On Fri, May 22, 2009 at 07:07:36PM +0300, Igor Vlasenko wrote:
> On Fri, May 22, 2009 at 07:02:33PM +0400, Alexey Tourbin wrote:
> > > Эту же цель можно достичь гораздо дешевлее,
> > > реализовав рабочие карманы для всех желающих.
> > > из этих желающих вырастет новое поколение 
> > > и тестеров, и мейнтейнеров.
> > 
> > Ага, то есть содержимое карманов не предназначено для помещения
> > в репозитарий.  
> 
> да, в том смысле, что оно сразу в репозиторий не попадает,
> но есть возможность при наличии 
> (прав|разрешения RM|разрешения майнтайнера), перезалить
> содержимое кармана на сборку в бранч/сизиф.

Если первоначально не закладывать интеграцию с girar-builder и
возможность взять пакеты в репозитарий (с пересборкой, если она
потребуется), тогда идея карманов получается ещё более неопределенной.
В интернете места много, а hasher как индивидуальный инструмент есть
каждого.  И перезалить пакеты на сборку в git.alt тоже никто не
запрещает.  Это просто будет какая-то другая инфраструктура, которая
меня не интересует.

А если сразу закладывать интеграцию с girar-builder, тогда опять не
понятно, о чем разговор.  Просто заливайте пакеты на сборку.  Если
ошибок не обнаружено, то они автоматически проходят.  Проверка ACL
должна выполняться последней, так что если не хватает прав, то можно
просить NMU у мейнтейнера и/или администратора/RM.  Именно на эту
сборку!  Смысл NMU как раз в том, что его надо давать на конкретную
сборку, а не на неизвестно что.

Кажется, сейчас master репозитарий синхронизируется в публичный доступ
раз в сутки.  Если синхронизировать его чаще, то это даст возможность
быстрее устанавливать и тестировать только что собранные пакеты.
(У меня есть доступ к master репозитарию в обход публичного доступа,
так что при необходимости я сразу забираю и смотрю что там получилось.)

> > Когда мы начинаем
> > собирать карман, надо делать lock репозитария на чтение, чтобы во
> > время установки пакетов не оказалось, что репозитарий уже изменился.
> 
> лок на чтение можно, например, заменить хардлинк-копией репозитория.

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

Но даже чтобы сделать хардлинк-копию репозитария, надо брать lock
на чтение.  Репозитарий постоянно обновляется, а сборка задания берёт
лок на запись.  И это правильно, потому что во время сборки задания
репозитарий нельзя обновлять.  Но, получается, что во время сборки
задания репозитарий нельзя и читать.  Значит, нужна другая семантика
блокировки (multiple-reader/single-writer), с промежуночной ступенью
IWRITE (shared with READ, but conflicts with WRITE and IWRITE).
http://www.oracle.com/technology/documentation/berkeley-db/db/ref/lock/cam_conv.html
Конечно, всё это чисто технические трудности.

> Более того, 
> поскольку это карман, то от технически сложных или ресурсоемких
> проверок можно и отказаться, частично.
> А проводить их только для пакетов, помещаемых в репозитарий.

Сейчас выполняются только проверки, которые отлавливают грубые ошибки:
проверка зависимостей, контроль ABI и установка пакетов.  Эти проверки
занимают относительно немного времени (время сборки варьируется гораздо
сильнее).  Пока тут не на чем экономить.

> > И надо ли брать такой лок per package или per карман, это всё непростые
> > вопросы.
> В случае проблем для карманов можно пожертвовать строгостью.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20090522/8920ef87/attachment-0001.bin>


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