* [devel] RFC: тестирование входящих пакетов полной пересборкой сизифа @ 2007-08-21 21:43 Alexey Tourbin 2007-08-22 5:25 ` Денис Смирнов 2007-08-23 10:19 ` Alexey Tourbin 0 siblings, 2 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-21 21:43 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 4751 bytes --] Я заметил, что branch 4.0 перед выкладыванием проходит тестирование пересборкой. Всё это делается вручную. У меня есть предложение внедрить аналогичную схему _автоматической_ пересборки для сизифа. Я систематизирую идеи, которые обсуждал на конференции с ldv. К сожалению, мне не удалось обсудить это с legion'ом. Предыдущее обсуждение этой же темы здесь: http://lists.altlinux.org/pipermail/devel/2007-April/045149.html http://lists.altlinux.org/pipermail/devel/2007-April/045288.html (и вообще все письма в этом треде -- "git.alt build") Основная идея в том, что на каждый входящий пакет можно устраивать полную пересборку сизифа с этим пакетом (если он собрался). Это нужно для "раннего" обнаружения проблем, чтобы не пропускать в сизиф пакеты, которые заведомо слишком много ломают (по крайней мере, в смысле возможности пересборки пакетов). Любая попытка провести новый пакет (новую сборку пакета) в сизиф должна быть, вообще говоря, "условной" (или "пробной"). После того, как пакет собрался, нужно провести "полную пересборку сизифа" с этим пакетом. Если все пакеты "успешно пересобрались", то новая сборка автоматически проходит в сизиф. Если же некоторые пакеты сломались, то новая сборка ставится "на подтверждение". Поясню некоторые выражения в кавычках. "Полную пересборку сизифа" следует трактовать не буквально, а вот как: пересобрать все пакеты, у которых при сборке в билдрут ставится один из новых пакетов. Это означает, что, с учетом поступивших пакетов, для каждого src.rpm пакета формируется список пакетов для билдрута. Если в списке пакетов для билдрута оказывается новый пакет, то этот src.rpm пакет подлежит пересборке. "Успешная пересборка" сизифа подразумевает сравнение с предыдущим статусом "полной пересборки сизифа". Если по сравнению с предыдущей полной пересборкой какой-либо пакет перестал собираться, значит, пересборка не является успешной. "Подтверждение" означает осознанное действие со стороны maintainer'а пакета и/или "формирующего очередной релиз сизифа" по отношению к пакету, который что-то сломал. То есть можно вручную подтвердить, что новый пакет всё же не настолько плох, чтобы не пускать его в сизиф (например, виноваты другие пакеты, или же ожидается их скорое исправление). Вижу две проблемы: теоретическую (сериализация) и ресурсы. Сериализация. В идеале таким образом пакеты должны идти в очередь один за другим, и очередь не должна двигаться, пока не будет принято решение по каждому очередному "неидеальному" пакету. К сожалению, полная сериализация будет упираться в человеческий фактор (подтверждение вручную) и поэтому нетехнологична. То есть проблема в том, что параллельно протестированные пакеты могут по отдельности ничего не ломать, а комбинация двух новых пакетов может дать уже другой исход. Пример. Прошел пакет libxml2 и успешно протестировался пересборкой старой версии perl-XML-LibXML. Параллельно прошел новый пакет perl-XML-LibXML и успешно протестировался на старой версии libxml2. Но, может статься, новый perl-XML-LibXML уже не будет собираться на новой версии libxml2. На самом деле такого рода "конкурентные изменения" рассматриваются в теории RDBMS. Там есть разные уровни изоляции транзакций и т.д. Может кто знает. Ресурсы. На самом деле для "среднего пакета" потребуется не слишком много сборочных ресурсов. Недавно я выяснил (и написал), что число пакетов в сизифе, у которых в билдруте при сборке есть библиотека libcurl, это число равно 69 (если не ошибаюсь). Конечно, если пакет ставится в базовую сборочную среду, тогда возможность уменьшения списка пакетов исчезает. Но, может быть, кто-нибудь помнит историю с битым cpio ("cpio обновился, и hasher сломался"). Так что ресурсы на полную пересборку сизифа при прохождении базовых пакетов не стоит считать потраченными напрасно. Впрочем, последнее мнение не отменяет вопроса о наличии ресурсов как таковых. Техническая проблема на подступах к определению списка пакетов, подлежащих пересборке, было в том, что нужно научиться очень быстро строить список пакетов в билдруте при сборке каждого src.rpm пакета. Стандартный способ (который используется в hasher, через --print-uris) занимает порядка одной секунды на src.rpm пакет. Это связано с тем, что apt всё время перечитывает свой кеш. В сизифе около 6000 src.rpm пакетов, значит, определять, какие из них нужно пересобрать, можно около 2 часов. Это даже больше, чем может занять последующая пересборка обнаруженным таким образом src.rpm пакетов. У меня сейчас зреет решение, как немного захачить апт и написать к нему скрипт на lua, чтобы построение списка пакетов для пересборки по времени сводилось к чтению хедеров src.rpm пакетов. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-21 21:43 [devel] RFC: тестирование входящих пакетов полной пересборкой сизифа Alexey Tourbin @ 2007-08-22 5:25 ` Денис Смирнов 2007-08-22 8:22 ` Хихин Руслан 2007-08-23 10:19 ` Alexey Tourbin 1 sibling, 1 reply; 46+ messages in thread From: Денис Смирнов @ 2007-08-22 5:25 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 698 bytes --] On Wed, Aug 22, 2007 at 01:43:21AM +0400, Алексей Турбин wrote: Я уже тысячу раз выдвигал идею с формированием некоего pocket перед Сизифом. Вся сборка входящих пакетов ведется в этом pocket. После сборки если пакет ничего не ломает, то он переносится в Сизиф. Если что-то ломает -- остается в pocket. Необходимость оставлять в pocket нужна для пакетов, которые необходимо переносить в Сизиф _группой_, тогда эти пакеты будут из pocket в Сизиф переноситься уже группой. -- С уважением, Денис http://freesource.info ---------------------------------------------------------------------------- Я не улавливаю, зачем про каждый новый пакет спрашивать incoming@? -- ldv in devel@ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-22 5:25 ` Денис Смирнов @ 2007-08-22 8:22 ` Хихин Руслан 0 siblings, 0 replies; 46+ messages in thread From: Хихин Руслан @ 2007-08-22 8:22 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 561 bytes --] Здравствуйте Денис Смирнов В сообщении от 22 августа 2007 Денис Смирнов написал(a): > Я уже тысячу раз выдвигал идею с формированием некоего pocket перед > Сизифом. Вся сборка входящих пакетов ведется в этом pocket. После > сборки > если пакет ничего не ломает, то он переносится в Сизиф. Если что-то > ломает > -- остается в pocket. Необходимость оставлять в pocket нужна для > пакетов, > которые необходимо переносить в Сизиф _группой_, тогда эти пакеты > будут из > pocket в Сизиф переноситься уже группой. Я за :) -- С уважением Хихин Руслан [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-21 21:43 [devel] RFC: тестирование входящих пакетов полной пересборкой сизифа Alexey Tourbin 2007-08-22 5:25 ` Денис Смирнов @ 2007-08-23 10:19 ` Alexey Tourbin 2007-08-23 11:10 ` Michael Shigorin 2007-08-23 13:23 ` [devel] " Alexey Tourbin 1 sibling, 2 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-23 10:19 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 1703 bytes --] On Wed, Aug 22, 2007 at 01:43:21AM +0400, Alexey Tourbin wrote: > "Полную пересборку сизифа" следует трактовать не буквально, а вот как: > пересобрать все пакеты, у которых при сборке в билдрут ставится один из > новых пакетов. Это означает, что, с учетом поступивших пакетов, для > каждого src.rpm пакета формируется список пакетов для билдрута. Если в > списке пакетов для билдрута оказывается новый пакет, то этот src.rpm > пакет подлежит пересборке. [...] > Техническая проблема на подступах к определению списка пакетов, подлежащих > пересборке, было в том, что нужно научиться очень быстро строить список > пакетов в билдруте при сборке каждого src.rpm пакета. Стандартный > способ (который используется в hasher, через --print-uris) занимает > порядка одной секунды на src.rpm пакет. Это связано с тем, что apt всё > время перечитывает свой кеш. В сизифе около 6000 src.rpm пакетов, значит, > определять, какие из них нужно пересобрать, можно около 2 часов. Это > даже больше, чем может занять последующая пересборка обнаруженным таким > образом src.rpm пакетов. У меня сейчас зреет решение, как немного > захачить апт и написать к нему скрипт на lua, чтобы построение списка > пакетов для пересборки по времени сводилось к чтению хедеров src.rpm > пакетов. Я придумал решение (захачил апт, чтобы он не перечитывал кеш, написал скрипт на lua и кое-что ещё), при котором скорость --print-uris на моей машине сейчас около 5 src.rpm пакетов в секунду. Получается всё равно достаточно много -- выяснять, какие из 6000 src.rpm пакетов нужно пересобирать, придётся минут 20. Боюсь, что намного быстрее уже не получится. Опубликую и напишу в ближайшее время. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-23 10:19 ` Alexey Tourbin @ 2007-08-23 11:10 ` Michael Shigorin 2007-08-23 11:16 ` Mykola S. Grechukh 2007-08-23 13:23 ` [devel] " Alexey Tourbin 1 sibling, 1 reply; 46+ messages in thread From: Michael Shigorin @ 2007-08-23 11:10 UTC (permalink / raw) To: devel On Thu, Aug 23, 2007 at 02:19:45PM +0400, Alexey Tourbin wrote: > Я придумал решение (захачил апт, чтобы он не перечитывал кеш, > написал скрипт на lua и кое-что ещё), при котором скорость > --print-uris на моей машине сейчас около 5 src.rpm пакетов в > секунду. Получается всё равно достаточно много -- выяснять, > какие из 6000 src.rpm пакетов нужно пересобирать, придётся > минут 20. Боюсь, что намного быстрее уже не получится. > Опубликую и напишу в ближайшее время. Мож покатит 80% решение -- делать выводы из списков пакетов по последней производившейся сборке? (помнишь, я предлагал и время следующей оценивать по времени предыдущей как-то) -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-23 11:10 ` Michael Shigorin @ 2007-08-23 11:16 ` Mykola S. Grechukh 2007-08-23 11:18 ` Mykola S. Grechukh 0 siblings, 1 reply; 46+ messages in thread From: Mykola S. Grechukh @ 2007-08-23 11:16 UTC (permalink / raw) To: ALT Devel discussion list > On Thu, Aug 23, 2007 at 02:19:45PM +0400, Alexey Tourbin wrote: > > Я придумал решение (захачил апт, чтобы он не перечитывал кеш, > > написал скрипт на lua и кое-что ещё), при котором скорость > > --print-uris на моей машине сейчас около 5 src.rpm пакетов в > > секунду. Получается всё равно достаточно много -- выяснять, > > какие из 6000 src.rpm пакетов нужно пересобирать, придётся > > минут 20. Боюсь, что намного быстрее уже не получится. > > Опубликую и напишу в ближайшее время. > > Мож покатит 80% решение -- делать выводы из списков пакетов > по последней производившейся сборке? как я понял, смысл именно в генерации списка с учетом вновь поступившего пакета.. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-23 11:16 ` Mykola S. Grechukh @ 2007-08-23 11:18 ` Mykola S. Grechukh 2007-08-23 11:52 ` [devel] [JT] " Michael Shigorin 0 siblings, 1 reply; 46+ messages in thread From: Mykola S. Grechukh @ 2007-08-23 11:18 UTC (permalink / raw) To: ALT Devel discussion list простейший пример - если пакетов qnetwalk поставить Provides: kdelibs Obsoletes: kdelibs .. то старые списки покажут, что его никто не использует. А на самом деле разломается сборка всего кдешного. ^ permalink raw reply [flat|nested] 46+ messages in thread
* [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-23 11:18 ` Mykola S. Grechukh @ 2007-08-23 11:52 ` Michael Shigorin 2007-08-23 12:10 ` Mykola S. Grechukh 2007-08-23 12:19 ` [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа Alexey Tourbin 0 siblings, 2 replies; 46+ messages in thread From: Michael Shigorin @ 2007-08-23 11:52 UTC (permalink / raw) To: ALT Devel discussion list On Thu, Aug 23, 2007 at 02:18:40PM +0300, Mykola S. Grechukh wrote: > простейший пример - если пакетов qnetwalk поставить > Provides: kdelibs > Obsoletes: kdelibs > > .. то старые списки покажут, что его никто не использует. > А на самом деле разломается сборка всего кдешного. Я же написал -- "80%". Инженер по качеству и полицейский с дубинкой -- немного разные роли, даже если и пересекающиеся. С такими аргументами... от rm -rf в %post тоже никаких страховок нет, и по существу быть не может. -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-23 11:52 ` [devel] [JT] " Michael Shigorin @ 2007-08-23 12:10 ` Mykola S. Grechukh 2007-08-23 12:11 ` Michael Shigorin 2007-08-23 12:19 ` [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа Alexey Tourbin 1 sibling, 1 reply; 46+ messages in thread From: Mykola S. Grechukh @ 2007-08-23 12:10 UTC (permalink / raw) To: ALT Devel discussion list > On Thu, Aug 23, 2007 at 02:18:40PM +0300, Mykola S. Grechukh wrote: > > простейший пример - если пакетов qnetwalk поставить > > Provides: kdelibs > > Obsoletes: kdelibs > > > > .. то старые списки покажут, что его никто не использует. > > А на самом деле разломается сборка всего кдешного. > > Я же написал -- "80%". Инженер по качеству и полицейский с > дубинкой -- немного разные роли, даже если и пересекающиеся. > > С такими аргументами... от rm -rf в %post тоже никаких страховок > нет, и по существу быть не может. ну это вырожденный случай. Но смысл имхо в проверке влияния нового пакета на сборку, *включая* изменение списка устанавливаемых. Более реалистичных примеров есть, хотя сейчас не соображу. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-23 12:10 ` Mykola S. Grechukh @ 2007-08-23 12:11 ` Michael Shigorin 2007-08-23 12:32 ` Alexey Tourbin 0 siblings, 1 reply; 46+ messages in thread From: Michael Shigorin @ 2007-08-23 12:11 UTC (permalink / raw) To: ALT Devel discussion list On Thu, Aug 23, 2007 at 03:10:00PM +0300, Mykola S. Grechukh wrote: > ну это вырожденный случай. Но смысл имхо в проверке влияния > нового пакета на сборку, *включая* изменение списка > устанавливаемых. Более реалистичных примеров есть, хотя сейчас > не соображу. Дорого очень получается, а поскольку это ПРОВЕРКА, а не mission critical чегонитьтам -- то и предложил применение принципа "сделай заранее". -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-23 12:11 ` Michael Shigorin @ 2007-08-23 12:32 ` Alexey Tourbin 2007-08-23 19:05 ` [devel] статистика Alexey Tourbin 0 siblings, 1 reply; 46+ messages in thread From: Alexey Tourbin @ 2007-08-23 12:32 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 1029 bytes --] On Thu, Aug 23, 2007 at 03:11:22PM +0300, Michael Shigorin wrote: > On Thu, Aug 23, 2007 at 03:10:00PM +0300, Mykola S. Grechukh wrote: > > ну это вырожденный случай. Но смысл имхо в проверке влияния > > нового пакета на сборку, *включая* изменение списка > > устанавливаемых. Более реалистичных примеров есть, хотя сейчас > > не соображу. > > Дорого очень получается, а поскольку это ПРОВЕРКА, а не mission > critical чегонитьтам -- то и предложил применение принципа > "сделай заранее". Очень дорого это сколько, в новых деньгах? :) Я и это обсуждал с ldv на конференции. Порешили на том, что нужно поточнее прикинуть статистику. Какая пропускная способность сизифа и средняя загрузка сборочных серверов нам нужна, и сколько, исходя из этого, нужно сборочных серверов? Думаю, что в ближайшее время ответ на эти вопросы будет получен. Тогда можно ставить вопрос ребром. А заранее вопить "очень дорого", впрочем как и "даёшь серверы" с пустыми руками и без понятия, это по-моему не стоит так делать. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* [devel] статистика 2007-08-23 12:32 ` Alexey Tourbin @ 2007-08-23 19:05 ` Alexey Tourbin 2007-08-23 20:25 ` Alexey Tourbin ` (2 more replies) 0 siblings, 3 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-23 19:05 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 2514 bytes --] On Thu, Aug 23, 2007 at 04:32:18PM +0400, Alexey Tourbin wrote: > Очень дорого это сколько, в новых деньгах? :) > > Я и это обсуждал с ldv на конференции. Порешили на том, > что нужно поточнее прикинуть статистику. Какая пропускная > способность сизифа и средняя загрузка сборочных серверов > нам нужна, и сколько, исходя из этого, нужно сборочных серверов? > > Думаю, что в ближайшее время ответ на эти вопросы будет получен. > Тогда можно ставить вопрос ребром. А заранее вопить "очень дорого", > впрочем как и "даёшь серверы" с пустыми руками и без понятия, это > по-моему не стоит так делать. Я грепнул логи /raid/beehive/old-logs/i586/2007/0812/success/, выложил сюда: ftp://ftp.altlinux.org/pub/people/at/buildtime У меня получилась следующая первичная статистика: среднее время сборки 74 секунды, медиана распределения 27 секунд, сигма которая СКО она же стандартная девиация 189 секунд, максимальное время сборки 3273 секунды (у пакета kdebase). Гистограмма по смыслу похожа на распределение Максвелла. :) ftp://ftp.altlinux.org/pub/people/at/buildtime.png Теперь, если кто понимает в мат. статистике, я вопрошаю: что можно извлечь из этих данных? Начнем с простого вопроса: что дает среднее время сборки пакета? Ведь может попасться "неудачный" пакет, и рассчитывать, что он соберётся за минуту, нельзя (kdebase собирается целый час). Из статистики известно "правило трёх сигм" (правда, оно касается распределений, близких к нормальному). Это правило сводится к тому, что с надёжностью больше 99% случайная величина (время сборки) принимает значение (среднее)плюс-минус(3*сигма), и с надежностью около 95% (среднее)плюс-минус(2*сигма). Значит, чтобы нас не "прокатили" на "оптимистичном" среднем значении, нужно закладывать время сборки пакета 74+2*сигма=74+2*189=452 секунды. С другой стороны, "время сборки" одного пакета по отношению к нашей задаче вообще имеет мало смысла. Мы ведь будем пересобирать серию из N пакетов подряд. Из статистики также известно (если чорт меня не попутал), что с увеличением размеров выборки сигма падает пропорционально 1/sqrt(N) -- то есть, на пальцах, "размах" отклонения суммарного времени падает за счет нивелирования выбросов. Это даёт следующую формулу: (ВРЕМЯ СБОРКИ СЛУЧАЙНО ВЫБРАННЫХ N src.rpm ПАКЕТОВ) <= N * (среднее + 2*сигма/sqrt(N)) где среднее = 74 секунды сигма = 189 секунда неравенство выполняется с вероятностью около 90%. Прошу подписчиков листа обдумать это соображение. :) [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] статистика 2007-08-23 19:05 ` [devel] статистика Alexey Tourbin @ 2007-08-23 20:25 ` Alexey Tourbin 2007-08-23 20:37 ` Vadim V. Zhytnikov 2007-08-23 21:08 ` Хихин Руслан 2 siblings, 0 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-23 20:25 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1.1: Type: text/plain, Size: 1055 bytes --] On Thu, Aug 23, 2007 at 11:05:29PM +0400, Alexey Tourbin wrote: > (ВРЕМЯ СБОРКИ СЛУЧАЙНО ВЫБРАННЫХ N src.rpm ПАКЕТОВ) <= > N * (среднее + 2*сигма/sqrt(N)) > где > среднее = 74 секунды > сигма = 189 секунда > неравенство выполняется с вероятностью около 90%. Численный эксперимент показывает, что надежность формулы около 95%. $ perl test-buildtime.pl <buildtime mean=74.3942971025606 devi=189.240149227661 5 packages: 955/1000 = 95.5% 10 packages: 948/1000 = 94.8% 50 packages: 959/1000 = 95.9% 100 packages: 952/1000 = 95.2% 500 packages: 972/1000 = 97.2% 1000 packages: 973/1000 = 97.3% 5000 packages: 1000/1000 = 100.0% $ perl test-buildtime.pl <buildtime mean=74.3942971025606 devi=189.240149227661 5 packages: 950/1000 = 95.0% 10 packages: 943/1000 = 94.3% 50 packages: 954/1000 = 95.4% 100 packages: 957/1000 = 95.7% 500 packages: 970/1000 = 97.0% 1000 packages: 983/1000 = 98.3% 5000 packages: 1000/1000 = 100.0% $ wc -l buildtime 6523 buildtime $ (test-buildtime.pl приложен) [-- Attachment #1.2: test-buildtime.pl --] [-- Type: text/plain, Size: 704 bytes --] #!/usr/bin/perl use strict; use Statistics::Descriptive; my $stats = Statistics::Descriptive::Full->new(); while (<>) { my @v = split; $stats->add_data(0+$v[-1]); } my $mean = $stats->mean(); my $devi = $stats->standard_deviation(); print "mean=$mean\n"; print "devi=$devi\n"; my @times = $stats->get_data(); sub calc_90_time ($) { my $N = shift; return $N * ($mean + 2*$devi/sqrt($N)); } use List::Util qw(shuffle sum); for my $N (5, 10, 50, 100, 500, 1000, 5000) { my $time = calc_90_time($N); my $n_ok = 0; for (1 .. 1000) { @times = shuffle(@times); my $sum = sum @times[1 .. $N]; $n_ok++ if $sum <= $time; } printf "%4d packages: %4d/1000 = %.1f%\n", $N, $n_ok, 100*$n_ok/1000; } [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] статистика 2007-08-23 19:05 ` [devel] статистика Alexey Tourbin 2007-08-23 20:25 ` Alexey Tourbin @ 2007-08-23 20:37 ` Vadim V. Zhytnikov 2007-08-23 19:51 ` Alexey Tourbin 2007-08-23 21:03 ` Alexey Tourbin 2007-08-23 21:08 ` Хихин Руслан 2 siblings, 2 replies; 46+ messages in thread From: Vadim V. Zhytnikov @ 2007-08-23 20:37 UTC (permalink / raw) To: ALT Devel discussion list Alexey Tourbin пишет: > On Thu, Aug 23, 2007 at 04:32:18PM +0400, Alexey Tourbin wrote: >> Очень дорого это сколько, в новых деньгах? :) >> >> Я и это обсуждал с ldv на конференции. Порешили на том, >> что нужно поточнее прикинуть статистику. Какая пропускная >> способность сизифа и средняя загрузка сборочных серверов >> нам нужна, и сколько, исходя из этого, нужно сборочных серверов? >> >> Думаю, что в ближайшее время ответ на эти вопросы будет получен. >> Тогда можно ставить вопрос ребром. А заранее вопить "очень дорого", >> впрочем как и "даёшь серверы" с пустыми руками и без понятия, это >> по-моему не стоит так делать. > > Я грепнул логи /raid/beehive/old-logs/i586/2007/0812/success/, > выложил сюда: ftp://ftp.altlinux.org/pub/people/at/buildtime > > У меня получилась следующая первичная статистика: > среднее время сборки 74 секунды, медиана распределения 27 секунд, > сигма которая СКО она же стандартная девиация 189 секунд, > максимальное время сборки 3273 секунды (у пакета kdebase). > > Гистограмма по смыслу похожа на распределение Максвелла. :) > ftp://ftp.altlinux.org/pub/people/at/buildtime.png > Какова температура репозитория? -- Vadim V. Zhytnikov <vvzhy@mail.ru> <vvzhy@netorn.ru> ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] статистика 2007-08-23 20:37 ` Vadim V. Zhytnikov @ 2007-08-23 19:51 ` Alexey Tourbin 2007-08-23 21:03 ` Alexey Tourbin 1 sibling, 0 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-23 19:51 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 1761 bytes --] On Thu, Aug 23, 2007 at 11:37:21PM +0300, Vadim V. Zhytnikov wrote: > Alexey Tourbin пишет: > > On Thu, Aug 23, 2007 at 04:32:18PM +0400, Alexey Tourbin wrote: > >> Очень дорого это сколько, в новых деньгах? :) > >> > >> Я и это обсуждал с ldv на конференции. Порешили на том, > >> что нужно поточнее прикинуть статистику. Какая пропускная > >> способность сизифа и средняя загрузка сборочных серверов > >> нам нужна, и сколько, исходя из этого, нужно сборочных серверов? > >> > >> Думаю, что в ближайшее время ответ на эти вопросы будет получен. > >> Тогда можно ставить вопрос ребром. А заранее вопить "очень дорого", > >> впрочем как и "даёшь серверы" с пустыми руками и без понятия, это > >> по-моему не стоит так делать. > > > > Я грепнул логи /raid/beehive/old-logs/i586/2007/0812/success/, > > выложил сюда: ftp://ftp.altlinux.org/pub/people/at/buildtime > > > > У меня получилась следующая первичная статистика: > > среднее время сборки 74 секунды, медиана распределения 27 секунд, > > сигма которая СКО она же стандартная девиация 189 секунд, > > максимальное время сборки 3273 секунды (у пакета kdebase). > > > > Гистограмма по смыслу похожа на распределение Максвелла. :) > > ftp://ftp.altlinux.org/pub/people/at/buildtime.png > > > > Какова температура репозитория? Это гистограмма. Каждый столбец означает сколько пакетов собирается в интервале [n..n+10) секунд. Зелёная кривая это распределение Максвелла, его параметры я, очевидно, не вычислял методом правдоподобия а подобрал с третьего раза, just for fun. :) Я не понял суть вопроса. Постановка задачи типа "за какое время соберётся N случайно выбранных src.rpm пакетов с заданной надежностью на превышение времени" кажется Вам бессмысленной? [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] статистика 2007-08-23 20:37 ` Vadim V. Zhytnikov 2007-08-23 19:51 ` Alexey Tourbin @ 2007-08-23 21:03 ` Alexey Tourbin 1 sibling, 0 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-23 21:03 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 494 bytes --] On Thu, Aug 23, 2007 at 11:37:21PM +0300, Vadim V. Zhytnikov wrote: > > Гистограмма по смыслу похожа на распределение Максвелла. :) > > ftp://ftp.altlinux.org/pub/people/at/buildtime.png > > Какова температура репозитория? А, я понял, Вы про распределение молекул по скоростям... А температура это довольно искусственный макропараметр. Температурную шкалу можно ввести только через реперные точки, которые даются "эмпирически". А какие могут быть в репозитории реперные точки? :) [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] статистика 2007-08-23 19:05 ` [devel] статистика Alexey Tourbin 2007-08-23 20:25 ` Alexey Tourbin 2007-08-23 20:37 ` Vadim V. Zhytnikov @ 2007-08-23 21:08 ` Хихин Руслан 2007-08-23 21:47 ` Alexey Tourbin 2 siblings, 1 reply; 46+ messages in thread From: Хихин Руслан @ 2007-08-23 21:08 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 3103 bytes --] Здравствуйте Alexey Tourbin В сообщении от 23 августа 2007 Alexey Tourbin написал(a): > On Thu, Aug 23, 2007 at 04:32:18PM +0400, Alexey Tourbin wrote: > > Очень дорого это сколько, в новых деньгах? :) > > > > > > > > Я и это обсуждал с ldv на конференции. Порешили на том, > > > > что нужно поточнее прикинуть статистику. Какая пропускная > > > > способность сизифа и средняя загрузка сборочных серверов > > > > нам нужна, и сколько, исходя из этого, нужно сборочных серверов? > > > > > > > > Думаю, что в ближайшее время ответ на эти вопросы будет получен. > > > > Тогда можно ставить вопрос ребром. А заранее вопить "очень > > дорого", > > > > впрочем как и "даёшь серверы" с пустыми руками и без понятия, это > > > > по-моему не стоит так делать. > > Я грепнул логи /raid/beehive/old-logs/i586/2007/0812/success/, > > выложил сюда: ftp://ftp.altlinux.org/pub/people/at/buildtime > > > > У меня получилась следующая первичная статистика: > > среднее время сборки 74 секунды, медиана распределения 27 секунд, > > сигма которая СКО она же стандартная девиация 189 секунд, > > максимальное время сборки 3273 секунды (у пакета kdebase). > > > > Гистограмма по смыслу похожа на распределение Максвелла. :) > > ftp://ftp.altlinux.org/pub/people/at/buildtime.png > > > > Теперь, если кто понимает в мат. статистике, я вопрошаю: > > что можно извлечь из этих данных? > > > > Начнем с простого вопроса: что дает среднее время сборки пакета? > > Ведь может попасться "неудачный" пакет, и рассчитывать, что он > соберётся > > за минуту, нельзя (kdebase собирается целый час). Из статистики > > известно "правило трёх сигм" (правда, оно касается распределений, > > близких к нормальному). Это правило сводится к тому, что с > надёжностью > > больше 99% случайная величина (время сборки) принимает значение > > (среднее)плюс-минус(3*сигма), и с надежностью около 95% > > (среднее)плюс-минус(2*сигма). > > > > Значит, чтобы нас не "прокатили" на "оптимистичном" среднем > значении, > > нужно закладывать время сборки пакета 74+2*сигма=74+2*189=452 > секунды. > > > > С другой стороны, "время сборки" одного пакета по отношению к нашей > > задаче вообще имеет мало смысла. Мы ведь будем пересобирать серию > из > > N пакетов подряд. Из статистики также известно (если чорт меня не > > попутал), что с увеличением размеров выборки сигма падает > > пропорционально 1/sqrt(N) -- то есть, на пальцах, "размах" > отклонения > > суммарного времени падает за счет нивелирования выбросов. > > Это даёт следующую формулу: > > > > (ВРЕМЯ СБОРКИ СЛУЧАЙНО ВЫБРАННЫХ N src.rpm ПАКЕТОВ) <= > > N * (среднее + 2*сигма/sqrt(N)) > > где > > среднее = 74 секунды > > сигма = 189 секунда > > неравенство выполняется с вероятностью около 90%. > > > > Прошу подписчиков листа обдумать это соображение. :) т.е. для 1000 пакетов (область статисики) имеем ~ 74011 секунд или 20 часов 33 минуты ? а для 6685 пакетов, находящихся в Сизифе около 5 суток ? Ошибки в расчётах нет ? -- С уважением Хихин Руслан [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] статистика 2007-08-23 21:08 ` Хихин Руслан @ 2007-08-23 21:47 ` Alexey Tourbin 2007-08-23 21:59 ` Alexey Tourbin 2007-08-23 22:19 ` Alexey Tourbin 0 siblings, 2 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-23 21:47 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 1892 bytes --] On Fri, Aug 24, 2007 at 01:08:26AM +0400, Хихин Руслан wrote: > > Прошу подписчиков листа обдумать это соображение. :) > т.е. для 1000 пакетов (область статисики) имеем ~ 74011 секунд или 20 > часов 33 минуты ? а для 6685 пакетов, находящихся в Сизифе около 5 > суток ? Ошибки в расчётах нет ? Это оценка сверху (с достаточно высокой надежностью на превышение). Она справедлива для числа пакетов около 10-100, и для примерно такого числа пакетов и предназначена. Думаю, что это типичное число пакетов, которые подлежат пересборке при прохождении в сизиф пакета, который не входит в basesystem + rpm-build. Впрочем, это следующая мини-задача, которую предстоит решить. При числе пакетов порядка 1000 формула уже дает надежность 97-98 процентов, то есть для прежней надежности в 95% время получается немного завышенным. Всё таки у нас далеко не нормальное распределение, поэтому применимость "формулы трёх сигм" может быть ограниченной. Впрочем, посмотрим на это вот как. Среднее время сборки пакета 67 секунд. Без заклада на надёжность получается 1000*67 секунд т.е. 18-19 часов. С закладом на надёжность вычисляем: 1000*(67+2*189/33) = 1000*(67+11.5) = 78500 = 22 часа. Нетрудно видеть, что при увеличении числа пакетов "заклад на надёжность" (по превышению времени) становится всё меньше. Так, для 1000 пакетов к 67 секундам на пакет сверх того добавляется всего 11.5 секунд. То есть, конечно же, это формула асимптотически верна: при большом числе пакетов "заклад на надёжность" падает и формула сводится к значению (число_пакетов)*(среднее_время_сборки_пакета). Увы, чудес не бывает. Полная пересборка сизифа требует $ cut -f2 buildtime |perl -MList::Util=sum -le 'print sum(<>)' 485274 $ секунд машинного времени, т.е. около $ cut -f2 buildtime |perl -MList::Util=sum -le 'print sum(<>)/3600' 134.798333333333 $ 135 часов. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] статистика 2007-08-23 21:47 ` Alexey Tourbin @ 2007-08-23 21:59 ` Alexey Tourbin 2007-08-23 22:19 ` Alexey Tourbin 1 sibling, 0 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-23 21:59 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 593 bytes --] On Fri, Aug 24, 2007 at 01:47:42AM +0400, Alexey Tourbin wrote: > При числе пакетов порядка 1000 формула уже дает надежность 97-98 > процентов, то есть для прежней надежности в 95% время получается > немного завышенным. Всё таки у нас далеко не нормальное распределение, > поэтому применимость "формулы трёх сигм" может быть ограниченной. То есть, насколько я ничего не понимаю, при большом числе пакетов надежность получается несколько завышенной из-за положительного эксцесса распределения (см. гистограмму). Вообще-то, наверное, можно придумать формулу с поправкой на эксцесс. [-- Attachment #2: Type: application/pgp-signature, Size: 185 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] статистика 2007-08-23 21:47 ` Alexey Tourbin 2007-08-23 21:59 ` Alexey Tourbin @ 2007-08-23 22:19 ` Alexey Tourbin 1 sibling, 0 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-23 22:19 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 321 bytes --] On Fri, Aug 24, 2007 at 01:47:42AM +0400, Alexey Tourbin wrote: > Впрочем, посмотрим на это вот как. Среднее время сборки пакета > 67 секунд. Без заклада на надёжность получается 1000*67 секунд 74 секунды. Это я вспоминаю свой вчерашний результат который был немного ошибочным из-за f-ing бага в одном скрипте. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-23 11:52 ` [devel] [JT] " Michael Shigorin 2007-08-23 12:10 ` Mykola S. Grechukh @ 2007-08-23 12:19 ` Alexey Tourbin 2007-08-23 13:12 ` Michael Shigorin 1 sibling, 1 reply; 46+ messages in thread From: Alexey Tourbin @ 2007-08-23 12:19 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 2472 bytes --] On Thu, Aug 23, 2007 at 02:52:25PM +0300, Michael Shigorin wrote: > On Thu, Aug 23, 2007 at 02:18:40PM +0300, Mykola S. Grechukh wrote: > > простейший пример - если пакетов qnetwalk поставить > > Provides: kdelibs > > Obsoletes: kdelibs > > > > .. то старые списки покажут, что его никто не использует. > > А на самом деле разломается сборка всего кдешного. > > Я же написал -- "80%". Инженер по качеству и полицейский с > дубинкой -- немного разные роли, даже если и пересекающиеся. > > С такими аргументами... от rm -rf в %post тоже никаких страховок > нет, и по существу быть не может. Это другая проблема. Я сделал постановку задачи для своей пробемы. Она примерно такая. В сизиф собрался новый бинарный пакет (или несколько пакетов из одного src.rpm пакета). Теперь для каждого src.rpm пакета нужно КАК БЫ инициализировать сборочный билдрут и посмотреть, не встал ли в какой из этих билдрутов один из вновь пришедших пакетов. Если в билдрут для сборки src.rpm пакета встаёт один из пришедших пакетов, то этот src.rpm пакет нужно тестировать пересборкой. (Соответственно, я играю в "игру" в рамках этой постновки задачи. В других задачах будут другие подходы. Они тоже есть. legion когда-то пытался сделать установку+удаление пакета и последующую проверку чрута через osec. Это надо будет со временем возродить, или хотя бы понять, что там не склеилось.) Всё дело, конечно, в том, что означает "КАК БЫ". Реально инициализировать билдрут для каждого src.rpm пакета это никаких ресурсов не хватит. Просто делать apt-get --print-uris, не доходя до установки пакетов в билдрут, это порядка одной секунды на src.rpm пакет. Я сейчас утверждаю, что есть способ получить аутентичный результат в 5 раз быстрее. То что ты предлагаешь я делал 2 года назад. Для каждого src.rpm пакета хранится список пакетов билдрута от предыдущей его сборки. То есть таблица <pkg-name> <rpm-file-basename>. (На самом деле достаточно хранить только rpm-file-basename, потому что отрезанием -version-release-*.rpm получается pkg-name). Теперь достаточно "гнепнуть" (join'ом) старые списки на предмет совпадения pkg-name относительно прибывших пакетов. Это не только не решает Provides+Obsolets, это не решает даже виртуальных зависимостей. Например пришёл пакет libstdc++4.2-devel. Его в предыдущих списках нигде нет. Значит, наша система "не догадается" пересобрать приплюснутые пакеты. Такое простое опровержение <...> [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-23 12:19 ` [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа Alexey Tourbin @ 2007-08-23 13:12 ` Michael Shigorin 2007-08-24 11:15 ` Alexey Tourbin 0 siblings, 1 reply; 46+ messages in thread From: Michael Shigorin @ 2007-08-23 13:12 UTC (permalink / raw) To: ALT Devel discussion list On Thu, Aug 23, 2007 at 04:19:40PM +0400, Alexey Tourbin wrote: > То что ты предлагаешь я делал 2 года назад. Для каждого > src.rpm пакета хранится список пакетов билдрута от предыдущей > его сборки. То есть таблица <pkg-name> <rpm-file-basename>. > (На самом деле достаточно хранить только rpm-file-basename, > потому что отрезанием -version-release-*.rpm получается > pkg-name). Теперь достаточно "гнепнуть" (join'ом) старые > списки на предмет совпадения pkg-name относительно прибывших > пакетов. Это не только не решает Provides+Obsolets, это не > решает даже виртуальных зависимостей. Хорошо, а инвалидировать такой кэш на основании сравнения выдранных из пакета BR? > Например пришёл пакет libstdc++4.2-devel. Его в предыдущих > списках нигде нет. Значит, наша система "не догадается" > пересобрать приплюснутые пакеты. Такое простое опровержение Согласен; хотя на такие варианты можно попробовать тоже найти эвристику подешевле, чем --print-uris -- например, ^([a-zA-Z_+-]+)[0-9]+(\.[0-9]+)-devel или около того сводится к более общей сущности \1-devel, которая и проверяется на наличие в BR (или по /etc/buildreqs/packages/substitute.d/ -- хотя для новой сборки записи ещё нет). Я к тому, что если решение задачи "в лоб" оказывается слишком дорогим, может иметь смысл разбавить решаемую задачу до "в большинстве практических случаев". -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-23 13:12 ` Michael Shigorin @ 2007-08-24 11:15 ` Alexey Tourbin 2007-08-25 9:15 ` Alexey I. Froloff 0 siblings, 1 reply; 46+ messages in thread From: Alexey Tourbin @ 2007-08-24 11:15 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 3916 bytes --] On Thu, Aug 23, 2007 at 04:12:53PM +0300, Michael Shigorin wrote: > On Thu, Aug 23, 2007 at 04:19:40PM +0400, Alexey Tourbin wrote: > > То что ты предлагаешь я делал 2 года назад. Для каждого > > src.rpm пакета хранится список пакетов билдрута от предыдущей > > его сборки. То есть таблица <pkg-name> <rpm-file-basename>. > > (На самом деле достаточно хранить только rpm-file-basename, > > потому что отрезанием -version-release-*.rpm получается > > pkg-name). Теперь достаточно "гнепнуть" (join'ом) старые > > списки на предмет совпадения pkg-name относительно прибывших > > пакетов. Это не только не решает Provides+Obsolets, это не > > решает даже виртуальных зависимостей. > > Хорошо, а инвалидировать такой кэш на основании сравнения > выдранных из пакета BR? Список BR оптимизируется, в этом есть свой смысл. То есть то, реализовано в /usr/share/buildreqs/optimize_package_list является не просто оптимизацией, но и "кристализующей" оптимизацией, проясняющей "смысл понятия". Например, библиотека lib1 может быть собрана сначала с backend1, а позднее пересобрана с backend1. Отсутствие backend1|backend2 в BR при наличии lib1 является БЛАГОМ. К сожалению, в каких-то эзотерических терминах объяснение получается. :) > > Например пришёл пакет libstdc++4.2-devel. Его в предыдущих > > списках нигде нет. Значит, наша система "не догадается" > > пересобрать приплюснутые пакеты. Такое простое опровержение > > Согласен; хотя на такие варианты можно попробовать тоже найти > эвристику подешевле, чем --print-uris -- например, > ^([a-zA-Z_+-]+)[0-9]+(\.[0-9]+)-devel или около того сводится > к более общей сущности \1-devel, которая и проверяется на наличие > в BR (или по /etc/buildreqs/packages/substitute.d/ -- хотя для > новой сборки записи ещё нет). > > Я к тому, что если решение задачи "в лоб" оказывается слишком > дорогим, может иметь смысл разбавить решаемую задачу до > "в большинстве практических случаев". Это не только тестирование для практических случаев. У меня есть идея, боюсь что я сейчас не смогу ее четко сформулировать без привлечения эзотерики. Смысл идеи в том, что каждый входящий пакет переводит репозиторий из состояния1 в состояние2. Переход является транзакционным, то есть в момент перехода разница между состоянием1 и состоянием2 должна быть четко определена (а сам переход "фиксирует" эту разницу). Состояние, в частности, включает в себя статус пересборки всех пакетов. То, что мы сейчас обсуждаем, это "как подешевле выяснить состояние2 в той его части, которая касается пересобираемости пакетов". То есть это мини-проблема при bottom-up подходе. Но решение ее должно быть надежным, иначе неопределенность будет наслаиваться, и уже ничего нельзя будет утверждать наверняка. Так, при переходе состояниеN->состояние(N+1) может выясниться, что очередной пакет очень много всего сломал, тогда как поломка могла случиться намного раньше, просто наши регулярные выражения дали сбой. Другая часть фиксации состояния -- это, например, изменение количества анметов. В общем, после того, как пакет собрался в хешере, нужно для него вычислить новое состояние, на основе целого ряда проверок, как минимум пересборка и анметы. Если новое состояние не хуже старого, тогда фиксация проходит автоматически. Если же оно является в чем-то хуже старого, тогда требуется подтверждение или retract вручную, со стороны maintainer'а пакета и/или со стороны "ответственного товарища". То что "слишком дорого" это в конечно счете надо смотреть во сколько это выльется по деньгам. Прибедняться тоже не надо, кашу из топора не сваришь, значит нужно обстоятельно прикинуть, чево и сколько хотелось бы иметь. И что это дает. Я считаю что предварительное вычисление состояния2 дает очень много -- по сути это разница между знанием и невежеством, между высокой определенностью и высокой неопределенностью. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-24 11:15 ` Alexey Tourbin @ 2007-08-25 9:15 ` Alexey I. Froloff 2007-08-25 9:33 ` Alexey Tourbin 0 siblings, 1 reply; 46+ messages in thread From: Alexey I. Froloff @ 2007-08-25 9:15 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 821 bytes --] * Alexey Tourbin <at@> [070824 15:18]: > В общем, после того, как пакет собрался в хешере, нужно для него > вычислить новое состояние, на основе целого ряда проверок, как минимум > пересборка и анметы. Если новое состояние не хуже старого, тогда > фиксация проходит автоматически. Если же оно является в чем-то хуже > старого, тогда требуется подтверждение или retract вручную, со стороны > maintainer'а пакета и/или со стороны "ответственного товарища". Я так понимаю, пакеты будут собираться по одному, а не "пачками" как раньше? Поэтому ситуацию "libfoo с новым SONAME и несколько зависимых от неё пакетов с исправлением совместимости" придётся разруливать вручную "ответственному товарищу". Ему не поплохеет? Насколько сложнее проверять и пересобирать пакеты "пачками"? -- Regards, Sir Raorn. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-25 9:15 ` Alexey I. Froloff @ 2007-08-25 9:33 ` Alexey Tourbin 2007-08-25 10:16 ` Alexey I. Froloff 0 siblings, 1 reply; 46+ messages in thread From: Alexey Tourbin @ 2007-08-25 9:33 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 1750 bytes --] On Sat, Aug 25, 2007 at 01:15:39PM +0400, Alexey I. Froloff wrote: > * Alexey Tourbin <at@> [070824 15:18]: > > В общем, после того, как пакет собрался в хешере, нужно для него > > вычислить новое состояние, на основе целого ряда проверок, как минимум > > пересборка и анметы. Если новое состояние не хуже старого, тогда > > фиксация проходит автоматически. Если же оно является в чем-то хуже > > старого, тогда требуется подтверждение или retract вручную, со стороны > > maintainer'а пакета и/или со стороны "ответственного товарища". > Я так понимаю, пакеты будут собираться по одному, а не "пачками" > как раньше? Поэтому ситуацию "libfoo с новым SONAME и несколько > зависимых от неё пакетов с исправлением совместимости" придётся > разруливать вручную "ответственному товарищу". Ему не поплохеет? Я рассматриваю с гранулярностью на один входящий пакет, это на самом деле фишка. То есть можно точно сказать, что сломал именно этот пакет. Если же просто тестировать с пачкой новых пакетов, как при еженедельных пересборках, тогда уже нельзя сказать наверняка, кто чево сломал. Разруливать, по-моему, должен не столько товарищ, сколько maintainer. То есть ему через несколько часов приходит письмо: "ой-ой-ой, вы ДЕЙСТВИТЕЛЬНО хотите отправить это дело в сизиф"? И maintainer отвечает: "да-да-да, я знаю, исправленные пакеты почти готовы". В принципе, наверное, ответственного товарища надо наделить правом вето, если maintainer проголосует неправильно. :) Но это уже политика... > Насколько сложнее проверять и пересобирать пакеты "пачками"? Наверное, если нужно провести сразу несколько пакетов в виде транзакции, то наверное нужно предусмотреть специальную операцию "отправить на вход группу пакетов". [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-25 9:33 ` Alexey Tourbin @ 2007-08-25 10:16 ` Alexey I. Froloff 2007-08-25 11:25 ` Igor Vlasenko 2007-08-25 18:33 ` Alexey Tourbin 0 siblings, 2 replies; 46+ messages in thread From: Alexey I. Froloff @ 2007-08-25 10:16 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 1004 bytes --] * Alexey Tourbin <at@> [070825 13:40]: > Разруливать, по-моему, должен не столько товарищ, сколько maintainer. > То есть ему через несколько часов приходит письмо: "ой-ой-ой, вы > ДЕЙСТВИТЕЛЬНО хотите отправить это дело в сизиф"? И maintainer > отвечает: "да-да-да, я знаю, исправленные пакеты почти готовы". Это АЦЦКИ медленно. Вот, например, thresh@ залил новый FLAC со сменой API и одновременно NMU на несколько зависимых пакетов. Или либа с новым SONAME и compat пакет. Если их перемещать по одному, то будут новые unmet'ы в репозитарии и сломанная сборка. Ждать ещё по несколько часов для каждого пакета? > > Насколько сложнее проверять и пересобирать пакеты "пачками"? > Наверное, если нужно провести сразу несколько пакетов в виде транзакции, > то наверное нужно предусмотреть специальную операцию "отправить на вход > группу пакетов". Поскольку из одного src получается больше-или-равно одного бинарного пакета, принципиальной разницы я не вижу. -- Regards, Sir Raorn. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-25 10:16 ` Alexey I. Froloff @ 2007-08-25 11:25 ` Igor Vlasenko 2007-08-25 11:36 ` Igor Vlasenko 2007-08-25 18:33 ` Alexey Tourbin 1 sibling, 1 reply; 46+ messages in thread From: Igor Vlasenko @ 2007-08-25 11:25 UTC (permalink / raw) To: ALT Devel discussion list 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'ы в репозитарии и сломанная сборка. > Ждать ещё по несколько часов для каждого пакета? А у меня, как правило, типичными были транзакции из 15-30 java пакетов. Они, кстати, часто не вписывались в окошко incoming --- напрашивается явное управление транзакциями. что-то вроде $ touch begin_ldv rsync begin_ldv incoming:// $ touch *.src.rpm rsync *.src.rpm incoming:// $ touch commit_ldv rsync commit_ldv incoming:// -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-25 11:25 ` Igor Vlasenko @ 2007-08-25 11:36 ` Igor Vlasenko 2007-08-25 11:48 ` Michael Shigorin 0 siblings, 1 reply; 46+ messages in thread From: Igor Vlasenko @ 2007-08-25 11:36 UTC (permalink / raw) To: ALT Devel discussion list On Sat, Aug 25, 2007 at 02:25:20PM +0300, Igor Vlasenko wrote: > 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'ы в репозитарии и сломанная сборка. > > Ждать ещё по несколько часов для каждого пакета? > А у меня, как правило, типичными были транзакции из 15-30 java пакетов. Т. е. что если первый пакет цепочки сборку пакета А ломает, а последний чинит (например, это новая версия А), то я эту цепочку едва за месяц залью. Это если я каждый день для этого буду находить время :( Таким образом, возникает задача, что тестовая пересборка должна как-то управляться майнтайнером. Можно, например, сделать так, для advanced случаев: заливать при желании вместе с srpm-ами файлы со списками пакетов в каждой транзакции. Заодно хинт incoming -- не трогать указанные пакеты, пока заливка не окончится. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-25 11:36 ` Igor Vlasenko @ 2007-08-25 11:48 ` Michael Shigorin 2007-08-25 11:53 ` Mykola S. Grechukh 0 siblings, 1 reply; 46+ messages in thread From: Michael Shigorin @ 2007-08-25 11:48 UTC (permalink / raw) To: ALT Devel discussion list On Sat, Aug 25, 2007 at 02:36:58PM +0300, Igor Vlasenko wrote: > Можно, например, сделать так, для advanced случаев: заливать > при желании вместе с srpm-ами файлы со списками пакетов в > каждой транзакции. Заодно хинт incoming -- не трогать > указанные пакеты, пока заливка не окончится. Игорь, это как раз решается сборкой из git.alt -- можно понавливать изменений в репозитории хоть за неделю, а потом пачкой запушить теги на сборку. BTW обсуждалось в Обнинске, жаль, что тебя там не было. -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-25 11:48 ` Michael Shigorin @ 2007-08-25 11:53 ` Mykola S. Grechukh 2007-08-25 21:58 ` Igor Vlasenko 0 siblings, 1 reply; 46+ messages in thread From: Mykola S. Grechukh @ 2007-08-25 11:53 UTC (permalink / raw) To: ALT Devel discussion list 2007/8/25, Michael Shigorin <mike@osdn.org.ua>: > On Sat, Aug 25, 2007 at 02:36:58PM +0300, Igor Vlasenko wrote: > > Можно, например, сделать так, для advanced случаев: заливать > > при желании вместе с srpm-ами файлы со списками пакетов в > > каждой транзакции. Заодно хинт incoming -- не трогать > > указанные пакеты, пока заливка не окончится. > > Игорь, это как раз решается сборкой из git.alt -- можно > понавливать изменений в репозитории хоть за неделю, > а потом пачкой запушить теги на сборку. это только "не трогать пока заливается". Но incominger все еще не знает, что тестовая пересборка осмыслена только для всей пачки. Не по timestamp же объединять в транзакции ? ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-25 11:53 ` Mykola S. Grechukh @ 2007-08-25 21:58 ` Igor Vlasenko 2007-08-25 22:43 ` Alexey Tourbin 0 siblings, 1 reply; 46+ messages in thread From: Igor Vlasenko @ 2007-08-25 21:58 UTC (permalink / raw) To: ALT Devel discussion list On Sat, Aug 25, 2007 at 02:53:51PM +0300, Mykola S. Grechukh wrote: > 2007/8/25, Michael Shigorin <mike@osdn.org.ua>: > > On Sat, Aug 25, 2007 at 02:36:58PM +0300, Igor Vlasenko wrote: > > > Можно, например, сделать так, для advanced случаев: заливать > > > при желании вместе с srpm-ами файлы со списками пакетов в > > > каждой транзакции. Заодно хинт incoming -- не трогать > > > указанные пакеты, пока заливка не окончится. > > > > Игорь, это как раз решается сборкой из git.alt -- можно > > понавливать изменений в репозитории хоть за неделю, > > а потом пачкой запушить теги на сборку. > > это только "не трогать пока заливается". Но incominger все еще не > знает, что тестовая пересборка осмыслена только для всей пачки. Не по > timestamp же объединять в транзакции ? +1. Кроме того, вспоминается классика. Почему в стране нехватка мяса? Потому что движемся к коммунизму семимильными шагами, а скотина за нами не поспевает. У меня на 400 пакетов 25 git репозиториев, Мясо на кости долго нарастает... Если же найдутся люди с установкой "Железной рукой загоним человечество к счастью", боюсь, и та что есть скотина передохнет... -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-25 21:58 ` Igor Vlasenko @ 2007-08-25 22:43 ` Alexey Tourbin 2007-08-25 23:35 ` Igor Vlasenko 2007-08-26 13:38 ` Alexey I. Froloff 0 siblings, 2 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-25 22:43 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 828 bytes --] On Sun, Aug 26, 2007 at 12:58:34AM +0300, Igor Vlasenko wrote: > У меня на 400 пакетов 25 git репозиториев, > Мясо на кости долго нарастает... > Если же найдутся люди с установкой > "Железной рукой загоним человечество к счастью", > боюсь, и та что есть скотина передохнет... Во-первых, не страдайте раньше времени. Во-вторых, хочу спросить: как желание собирать пакеты пачкой связано с последующей возможностью частичного ("точечного") обновления? Влияет ли собираемость пакетов "пачкой" на их последующую работоспособность пачкой/не пачкой? Отражено ли это влияние в зависимостях собранных пакетов? В общем, желание собирать пакеты "пачкой", как и вообще допущения о последовательности сборки пакетов, не отраженные в зависимостях, это всё дело довольно подозрительное. Кроме некоторых частных случаев. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-25 22:43 ` Alexey Tourbin @ 2007-08-25 23:35 ` Igor Vlasenko 2007-08-26 13:38 ` Alexey I. Froloff 1 sibling, 0 replies; 46+ messages in thread From: Igor Vlasenko @ 2007-08-25 23:35 UTC (permalink / raw) To: ALT Devel discussion list On Sun, Aug 26, 2007 at 02:43:50AM +0400, Alexey Tourbin wrote: > On Sun, Aug 26, 2007 at 12:58:34AM +0300, Igor Vlasenko wrote: > > У меня на 400 пакетов 25 git репозиториев, > > Мясо на кости долго нарастает... > > Если же найдутся люди с установкой > > "Железной рукой загоним человечество к счастью", > > боюсь, и та что есть скотина передохнет... > > Во-первых, не страдайте раньше времени. Да я и в`о время страдать не хочу. И призываю не заставлять других страдать. > Во-вторых, хочу спросить: как желание собирать пакеты пачкой связано > с последующей возможностью частичного ("точечного") обновления? Здесь более общая проблема теории баз данных, а именно транзакции против глобальных блокировок. Если пакеты связаны цепочкой зависимостей, получается ступор. Пример из жизни. Есть 2 цепочки зависящих друг от друга пакетов. пакеты 1й цепочки 15 шт. -- новые версии, порождают unmets и зависят друг от друга. пакеты 2й цепочки 15 шт. -- закрывают свои unmets, с патчами на новые API или исправленными Requires. пакеты 2й цепочки здесь просто для красоты, чтобы не ломать сизиф. Они после пакетов 1й цепочки пройдут легко. Основная проблема в 1й цепочке -- пусть на каждый 3-й пакет из 1й цепочки робот будет накладывать блокировку и ее надо будет снимать вручную. Итого пять раз придется вручную и в разные дни снимать блокировку, поскольку времени не хватает и возможность не всегда есть, то это 5-7 дней бессмысленного простоя и бессмысленной работы :( > Влияет ли собираемость пакетов "пачкой" на их последующую > работоспособность пачкой/не пачкой? Отражено ли это влияние в > зависимостях собранных пакетов? да. они связаны цепочкой зависимостей. > это всё дело довольно подозрительное. Это примеры не выдуманные, а скорее наболевшие и уже в печенках сидящие. Например у меня что-то подобное происходит каждый раз, когда я меняю пакет java c altquirks на стандартный совместимый. И без этих проверок incoming не успевает обрабатывать, а тут вообще будет. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-25 22:43 ` Alexey Tourbin 2007-08-25 23:35 ` Igor Vlasenko @ 2007-08-26 13:38 ` Alexey I. Froloff 1 sibling, 0 replies; 46+ messages in thread From: Alexey I. Froloff @ 2007-08-26 13:38 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 306 bytes --] * Alexey Tourbin <at@> [070826 02:49]: > Влияет ли собираемость пакетов "пачкой" на их последующую > работоспособность пачкой/не пачкой? Отражено ли это влияние в > зависимостях собранных пакетов? Самый распространённый случай - зависимость на SONAME некоей библиотеки. -- Regards, Sir Raorn. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-25 10:16 ` Alexey I. Froloff 2007-08-25 11:25 ` Igor Vlasenko @ 2007-08-25 18:33 ` Alexey Tourbin 2007-08-25 19:32 ` [devel] incominger Michael Shigorin 2007-08-25 20:13 ` [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа Денис Смирнов 1 sibling, 2 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-25 18:33 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 3538 bytes --] 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'а. Ну и что будет если при сведении "сводильщик" обнаруживает пересечения, тоже непонятно. Ладно, это уже вопросы на более отдалённое будущее, когда основные проблемы будут решены. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* [devel] incominger 2007-08-25 18:33 ` Alexey Tourbin @ 2007-08-25 19:32 ` Michael Shigorin 2007-08-25 20:13 ` [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа Денис Смирнов 1 sibling, 0 replies; 46+ messages in thread From: Michael Shigorin @ 2007-08-25 19:32 UTC (permalink / raw) To: ALT Devel discussion list On Sat, Aug 25, 2007 at 10:33:50PM +0400, Alexey Tourbin wrote: > К сожалению, работа управдома для меня достаточно непрозрачна, > и, насколько я знаю, нигде на git.altlinux.org управдомовские > скрипты не публикуются. Последнее состояние, какое знаю -- это то, что пакет incominger-code доступен, но сильно отличается от того, что применяется (а оно уже сильно отличается от того, что разрабатывается). Мне бы что-то для разгребания backports в (полу)автоматическом режиме... -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-25 18:33 ` Alexey Tourbin 2007-08-25 19:32 ` [devel] incominger Michael Shigorin @ 2007-08-25 20:13 ` Денис Смирнов 1 sibling, 0 replies; 46+ messages in thread From: Денис Смирнов @ 2007-08-25 20:13 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 1280 bytes --] On Sat, Aug 25, 2007 at 10:33:50PM +0400, Алексей Турбин wrote: AT> Плюс есть ещё параллельные транзакции. От них ЗЕЛО голова болит, я их AT> пока даже не обсуждал. Грубо говоря, начиная говорить о транзакциях, AT> есть два подхода. Первый подход -- каждый пакет собирается и AT> тестируется на логически "приватной копии" Сизифа. То есть каждый AT> входящий src.rpm пакет берёт "длинный" read-lock на текущий сизиф, а AT> "сводильщик" будет работать в режиме writer starvation. Другой крайний AT> вариант -- один большой общий отстойник для всех, который может AT> полностью или частично перемещаться в сизиф. Кстати это не настолько AT> глупо, как может показаться с первого взгляда. Промежуточный вариант -- AT> изоляция на уровне maintainer'а. Ну и что будет если при сведении AT> "сводильщик" обнаруживает пересечения, тоже непонятно. Ладно, это уже AT> вопросы на более отдалённое будущее, когда основные проблемы будут AT> решены. Между прочим я именно такой вариант (с общей предсизифовской сборочной помойкой) и предлагал. -- С уважением, Денис http://freesource.info ---------------------------------------------------------------------------- Миш, не нужно меня добавлять в СС ... мне хватит копии как QA :) -- legion in #8530 [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-23 10:19 ` Alexey Tourbin 2007-08-23 11:10 ` Michael Shigorin @ 2007-08-23 13:23 ` Alexey Tourbin 2007-08-24 12:51 ` Alexey Tourbin 2007-08-24 21:23 ` [devel] статистика [2] Alexey Tourbin 1 sibling, 2 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-23 13:23 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 8874 bytes --] On Thu, Aug 23, 2007 at 02:19:45PM +0400, Alexey Tourbin wrote: > On Wed, Aug 22, 2007 at 01:43:21AM +0400, Alexey Tourbin wrote: > > "Полную пересборку сизифа" следует трактовать не буквально, а вот как: > > пересобрать все пакеты, у которых при сборке в билдрут ставится один из > > новых пакетов. Это означает, что, с учетом поступивших пакетов, для > > каждого src.rpm пакета формируется список пакетов для билдрута. Если в > > списке пакетов для билдрута оказывается новый пакет, то этот src.rpm > > пакет подлежит пересборке. > > [...] > > > Техническая проблема на подступах к определению списка пакетов, подлежащих > > пересборке, было в том, что нужно научиться очень быстро строить список > > пакетов в билдруте при сборке каждого src.rpm пакета. Стандартный > > способ (который используется в hasher, через --print-uris) занимает > > порядка одной секунды на src.rpm пакет. Это связано с тем, что apt всё > > время перечитывает свой кеш. В сизифе около 6000 src.rpm пакетов, значит, > > определять, какие из них нужно пересобрать, можно около 2 часов. Это > > даже больше, чем может занять последующая пересборка обнаруженным таким > > образом src.rpm пакетов. У меня сейчас зреет решение, как немного > > захачить апт и написать к нему скрипт на lua, чтобы построение списка > > пакетов для пересборки по времени сводилось к чтению хедеров src.rpm > > пакетов. > > Я придумал решение (захачил апт, чтобы он не перечитывал кеш, написал > скрипт на lua и кое-что ещё), при котором скорость --print-uris на моей > машине сейчас около 5 src.rpm пакетов в секунду. Получается всё равно > достаточно много -- выяснять, какие из 6000 src.rpm пакетов нужно > пересобирать, придётся минут 20. Боюсь, что намного быстрее уже не > получится. > > Опубликую и напишу в ближайшее время. git.alt:/people/at/packages/query-rebuild.git Суть дела в следующем. apt-get.cc модифицируется в двух местах. 1) Пишем обёртку для DoInstall и добавляем DoInstall в число функций, доступных из lua скриптов: @@ -3173,6 +3219,7 @@ bool DoScript(CommandLine &CmdL) _config->Set("Scripts::AptGet::Script::", *I); _lua->SetGlobal("commit_ask", 1); + _lua->SetGlobal("DoInstall", lua_DoInstall); _lua->RunScripts("Scripts::AptGet::Script"); double Ask = _lua->GetGlobalNum("commit_ask"); _lua->ResetGlobals(); 2) Делаем так, чтобы DoInstall не перечитывал свой кеш. Для этого вводится статическая локальная переменная. @@ -1967,10 +1967,22 @@ bool DoUpgrade(CommandLine &CmdL) /* Install named packages */ bool DoInstall(CommandLine &CmdL) { +#if 1 + static CacheFile *GCache = 0; + if (!GCache) { + GCache = new CacheFile; + if (GCache->OpenForInstall() == false) + return false; + } + CacheFile &Cache = *GCache; + if (Cache.CheckDeps(CmdL.FileSize() != 1) == false) + return false; +#else CacheFile Cache; if (Cache.OpenForInstall() == false || Cache.CheckDeps(CmdL.FileSize() != 1) == false) return false; +#endif // Enter the special broken fixing mode if the user specified arguments bool BrokenFix = false; 3) Пишется вспомогательный скрипт, который очень быстро "опрашивает" BuildRequires пакетов, примерно так же, как это делается в hasher. Формат вывода скрипта: <src-rpm-basename> <deps>+ Суть скрипта такая deps=$(rpmquery -pR "$f") || { echo >&2 "${0##*/}: failed to query $f"; return 1; } deps="$(printf %s "$deps" |grep -v '^rpmlib(' |LC_ALL=C tr -d [[:blank:]])" [ -z "$deps" ] || printf "%s %s\n" "${f##*/}" "$(printf %s "$deps" |tr -s '[:space:]' ' ')" Я написал полностью аналогичный скрипт на перле, который работает в 100 раз быстрее шелловского. $ time ./query-pR.pl /ALT/Sisyphus/files/SRPMS >.pR ./query-pR.pl /ALT/Sisyphus/files/SRPMS > .pR 3.53s user 1.38s system 79% cpu 6.170 total $ head -2 .pR 7colors-0.80-alt5.src.rpm ORBit-devel XFree86-devel XFree86-libs esound-devel glib-devel gnome-libs-devel gtk+-devel imlib-devel libaudiofile-devel libdb1-devel xpm-devel a2ps-4.13-alt3.src.rpm ImageMagick flex ghostscript-common ghostscript-utils groff-base gv gzip-utils psutils tetex-core tetex-dvips tetex-latex xorg-x11-devel $ 4) Пишется скрипт print-uris.lua который будет вызывать DoInstall и вычислять содержимое билдрута для каждого src.rpm пакета (из предыдущего файла .pR, который будет подключен к stdin). Суть скрипта в следущем: print_uris("basesystem", {"basesystem"}) -- initialize cache print_uris("rpm-build", {"rpm-build"}) Теперь в аптовском кеше сидит "установленный" basesystem+rpm-build. На каждый src.rpm пакет lua будет форкаться (чтобы сохранить кеш). for line in io.lines() do ... fork_print_uris(rpm, deps) end В вывод print_uris добавлены строчки-маркеры BEGIN и END. Вот как это работает. $ hsh --init $TMPDIR/build $ chmod -w $TMPDIR/build/aptbox/var/lib/rpm # НУЖЕН ЧМОД $ ls ./apt-get ./apt-get # МОДИФИЦИРОВАННЫЙ $ PATH=$PWD:$PATH $TMPDIR/build/aptbox/apt-get -qq -y script ./print-uris.lua <.pR BEGIN basesystem END basesystem true BEGIN rpm-build END rpm-build true BEGIN 7colors-0.80-alt5.src.rpm 'file:/ALT/Sisyphus/i586/RPMS.classic/glib-1.2.10-alt12.i586.rpm' glib_1.2.10-alt12_i586.rpm 81314 6cb31aaa2875a1f0d0768d1435a4a435 'file:/ALT/Sisyphus/i586/RPMS.classic/libORBit-0.5.17-alt3.i586.rpm' libORBit_0.5.17-alt3_i586.rpm 169128 1097a7e5b1ccaa786e27271b7155be1a 'file:/ALT/Sisyphus/i586/RPMS.classic/ORBit-0.5.17-alt3.i586.rpm' ORBit_0.5.17-alt3_i586.rpm 127941 5f49b6b61338887fed13f2de967c00fe 'file:/ALT/Sisyphus/i586/RPMS.classic/libfontenc-1.0.4-alt1.i586.rpm' libfontenc_1.0.4-alt1_i586.rpm 13013 d5d031c9741e3de1e08b2dcd21dd26a5 'file:/ALT/Sisyphus/i586/RPMS.classic/libfreetype-2.3.5-alt2.i586.rpm' libfreetype_2.3.5-alt2_i586.rpm 315157 7447bc73a08199e18da1c49dad5fd21 ... END 7colors-0.80-alt5.src.rpm true BEGIN a2ps-4.13-alt3.src.rpm 'file:/ALT/Sisyphus/i586/RPMS.classic/libfontenc-1.0.4-alt1.i586.rpm' libfontenc_1.0.4-alt1_i586.rpm 13013 d5d031c9741e3de1e08b2dcd21dd26a5 'file:/ALT/Sisyphus/i586/RPMS.classic/libfreetype-2.3.5-alt2.i586.rpm' libfreetype_2.3.5-alt2_i586.rpm 315157 7447bc73a08199e18da1c49dad5fd21 ... END a2ps-4.13-alt3.src.rpm true BEGIN a52dec-0.7.4-alt5.src.rpm END a52dec-0.7.4-alt5.src.rpm true BEGIN aalib-1.4-alt2rc5.src.rpm 'file:/ALT/Sisyphus/i586/RPMS.classic/libX11-locales-1.1.3-alt3.i586.rpm' libX11-locales_3%3a1.1.3-alt3_i586.rpm 186817 19f61bc3fbf7c8248e43287d8ac653e1 'file:/ALT/Sisyphus/i586/RPMS.classic/libgpm-devel-1.20.1-alt8.i586.rpm' libgpm-devel_1.20.1-alt8_i586.rpm 11727 016186297ea138acd158f8ccd4b95347 ... END aalib-1.4-alt2rc5.src.rpm true BEGIN abinit-4.6.5-alt1.src.rpm ... $ То есть это обычный вывод apt-get install --print-uris, только сделанный в цикле и дополненный маркерами BEGIN <src-rpm-basename> END <src-rpm-basename> <true|false> 5) Теперь этот вывод несложно обработать скриптом print-uris-filter.awk, чтобы на выходе получить таблицу <src-rpm-basename> <inst-rpm-basename> Эта таблица означает, что для src.rpm пакета <src-rpm-basename> в билдрут будет ставиться собранный rpm пакет <inst-rpm-basename>. $ head .pR >.pR1 $ PATH=$PWD:$PATH $TMPDIR/build/aptbox/apt-get -qq -y script ./print-uris.lua <.pR1 >.uris $ awk -f ./print-uris-filter.awk .uris |head 7colors-0.80-alt5.src.rpm glib-1.2.10-alt12.i586.rpm 7colors-0.80-alt5.src.rpm libORBit-0.5.17-alt3.i586.rpm 7colors-0.80-alt5.src.rpm ORBit-0.5.17-alt3.i586.rpm 7colors-0.80-alt5.src.rpm libfontenc-1.0.4-alt1.i586.rpm 7colors-0.80-alt5.src.rpm libfreetype-2.3.5-alt2.i586.rpm 7colors-0.80-alt5.src.rpm libXfont-1.2.8-alt2.i586.rpm 7colors-0.80-alt5.src.rpm bdftopcf-1.0.1-alt1.i586.rpm 7colors-0.80-alt5.src.rpm libdb1-1.85-alt5.i586.rpm 7colors-0.80-alt5.src.rpm db1-utils-1.85-alt5.i586.rpm 7colors-0.80-alt5.src.rpm libaudiofile-0.2.6-alt2.i586.rpm $ awk -f ./print-uris-filter.awk .uris |sort -u -k1,1 7colors-0.80-alt5.src.rpm glib-1.2.10-alt12.i586.rpm a2ps-4.13-alt3.src.rpm libfontenc-1.0.4-alt1.i586.rpm aalib-1.4-alt2rc5.src.rpm libX11-locales-1.1.3-alt3.i586.rpm abinit-4.6.5-alt1.src.rpm gcc-fortran-common-1.4.10-alt2.i586.rpm abiword-2.4.6-alt2.src.rpm libIDL-0.8.8-alt1.i586.rpm abook-0.5.6-alt1.src.rpm libtinfo-devel-5.6-alt3.i586.rpm abuse_sdl-0.7.0-alt4.src.rpm ca-certificates-2007.02.06-alt1.noarch.rpm acidrip-0.14-alt1.src.rpm ca-certificates-2007.02.06-alt1.noarch.rpm acl-2.2.39-alt1.0.src.rpm libattr-devel-2.4.32-alt1.0.i586.rpm $ Теперь задача почти решена. Мы имеем вновь пришедшие пакеты <inst-rpm-basename>, и хотим узнать, какие <src-rpm-basename> подлежат пересборке. Это тривиальный join по этой таблице. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] RFC: тестирование входящих пакетов полной пересборкой сизифа 2007-08-23 13:23 ` [devel] " Alexey Tourbin @ 2007-08-24 12:51 ` Alexey Tourbin 2007-08-24 21:23 ` [devel] статистика [2] Alexey Tourbin 1 sibling, 0 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-24 12:51 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 1956 bytes --] On Thu, Aug 23, 2007 at 05:23:04PM +0400, Alexey Tourbin wrote: > $ PATH=$PWD:$PATH $TMPDIR/build/aptbox/apt-get -qq -y script ./print-uris.lua <.pR > BEGIN basesystem > END basesystem true > BEGIN rpm-build > END rpm-build true > BEGIN 7colors-0.80-alt5.src.rpm > 'file:/ALT/Sisyphus/i586/RPMS.classic/glib-1.2.10-alt12.i586.rpm' glib_1.2.10-alt12_i586.rpm 81314 6cb31aaa2875a1f0d0768d1435a4a435 > 'file:/ALT/Sisyphus/i586/RPMS.classic/libORBit-0.5.17-alt3.i586.rpm' libORBit_0.5.17-alt3_i586.rpm 169128 1097a7e5b1ccaa786e27271b7155be1a > 'file:/ALT/Sisyphus/i586/RPMS.classic/ORBit-0.5.17-alt3.i586.rpm' ORBit_0.5.17-alt3_i586.rpm 127941 5f49b6b61338887fed13f2de967c00fe > 'file:/ALT/Sisyphus/i586/RPMS.classic/libfontenc-1.0.4-alt1.i586.rpm' libfontenc_1.0.4-alt1_i586.rpm 13013 d5d031c9741e3de1e08b2dcd21dd26a5 > 'file:/ALT/Sisyphus/i586/RPMS.classic/libfreetype-2.3.5-alt2.i586.rpm' libfreetype_2.3.5-alt2_i586.rpm 315157 7447bc73a08199e18da1c49dad5fd21 > ... > END 7colors-0.80-alt5.src.rpm true > BEGIN a2ps-4.13-alt3.src.rpm > 'file:/ALT/Sisyphus/i586/RPMS.classic/libfontenc-1.0.4-alt1.i586.rpm' libfontenc_1.0.4-alt1_i586.rpm 13013 d5d031c9741e3de1e08b2dcd21dd26a5 > 'file:/ALT/Sisyphus/i586/RPMS.classic/libfreetype-2.3.5-alt2.i586.rpm' libfreetype_2.3.5-alt2_i586.rpm 315157 7447bc73a08199e18da1c49dad5fd21 > ... > END a2ps-4.13-alt3.src.rpm true > BEGIN a52dec-0.7.4-alt5.src.rpm > END a52dec-0.7.4-alt5.src.rpm true > BEGIN aalib-1.4-alt2rc5.src.rpm > 'file:/ALT/Sisyphus/i586/RPMS.classic/libX11-locales-1.1.3-alt3.i586.rpm' libX11-locales_3%3a1.1.3-alt3_i586.rpm 186817 19f61bc3fbf7c8248e43287d8ac653e1 > 'file:/ALT/Sisyphus/i586/RPMS.classic/libgpm-devel-1.20.1-alt8.i586.rpm' libgpm-devel_1.20.1-alt8_i586.rpm 11727 016186297ea138acd158f8ccd4b95347 > ... > END aalib-1.4-alt2rc5.src.rpm true > BEGIN abinit-4.6.5-alt1.src.rpm > ... > $ На машине mash.office полное вычисление print-uris занимает 37 минут. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* [devel] статистика [2] 2007-08-23 13:23 ` [devel] " Alexey Tourbin 2007-08-24 12:51 ` Alexey Tourbin @ 2007-08-24 21:23 ` Alexey Tourbin 2007-08-25 14:57 ` [devel] Критерий значимости пакета (Was: статистика) Alexey Rusakov 2007-08-29 20:39 ` [devel] статистика [2] Dmitry V. Levin 1 sibling, 2 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-24 21:23 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 10423 bytes --] On Thu, Aug 23, 2007 at 05:23:04PM +0400, Alexey Tourbin wrote: > 5) Теперь этот вывод несложно обработать скриптом print-uris-filter.awk, > чтобы на выходе получить таблицу > <src-rpm-basename> <inst-rpm-basename> > Эта таблица означает, что для src.rpm пакета <src-rpm-basename> > в билдрут будет ставиться собранный rpm пакет <inst-rpm-basename>. > > $ head .pR >.pR1 > $ PATH=$PWD:$PATH $TMPDIR/build/aptbox/apt-get -qq -y script ./print-uris.lua <.pR1 >.uris > $ awk -f ./print-uris-filter.awk .uris |head > 7colors-0.80-alt5.src.rpm glib-1.2.10-alt12.i586.rpm > 7colors-0.80-alt5.src.rpm libORBit-0.5.17-alt3.i586.rpm > 7colors-0.80-alt5.src.rpm ORBit-0.5.17-alt3.i586.rpm > 7colors-0.80-alt5.src.rpm libfontenc-1.0.4-alt1.i586.rpm > 7colors-0.80-alt5.src.rpm libfreetype-2.3.5-alt2.i586.rpm > 7colors-0.80-alt5.src.rpm libXfont-1.2.8-alt2.i586.rpm > 7colors-0.80-alt5.src.rpm bdftopcf-1.0.1-alt1.i586.rpm > 7colors-0.80-alt5.src.rpm libdb1-1.85-alt5.i586.rpm > 7colors-0.80-alt5.src.rpm db1-utils-1.85-alt5.i586.rpm > 7colors-0.80-alt5.src.rpm libaudiofile-0.2.6-alt2.i586.rpm > $ awk -f ./print-uris-filter.awk .uris |sort -u -k1,1 > 7colors-0.80-alt5.src.rpm glib-1.2.10-alt12.i586.rpm > a2ps-4.13-alt3.src.rpm libfontenc-1.0.4-alt1.i586.rpm > aalib-1.4-alt2rc5.src.rpm libX11-locales-1.1.3-alt3.i586.rpm > abinit-4.6.5-alt1.src.rpm gcc-fortran-common-1.4.10-alt2.i586.rpm > abiword-2.4.6-alt2.src.rpm libIDL-0.8.8-alt1.i586.rpm > abook-0.5.6-alt1.src.rpm libtinfo-devel-5.6-alt3.i586.rpm > abuse_sdl-0.7.0-alt4.src.rpm ca-certificates-2007.02.06-alt1.noarch.rpm > acidrip-0.14-alt1.src.rpm ca-certificates-2007.02.06-alt1.noarch.rpm > acl-2.2.39-alt1.0.src.rpm libattr-devel-2.4.32-alt1.0.i586.rpm > $ > > Теперь задача почти решена. Мы имеем вновь пришедшие пакеты > <inst-rpm-basename>, и хотим узнать, какие <src-rpm-basename> > подлежат пересборке. Это тривиальный join по этой таблице. Займемся теперь вопросом, сколько же сизифовских пакетов придётся тестировать пересборкой на каждый входящий src.rpm пакет. У меня есть полная таблица, кусочек которой приведен выше. Введу новое обозначение для полей таблицы: <test-src-rpm-basename> <incoming-rpm-basename> Это означает, что собравшийся в incoming'е пакет <incoming-rpm-basename>, оказывается, встает в чрут для сборки <test-src-rpm-basename>. Значит, вследствие прохождения <incoming-rpm-basename> нужно протестировать пересборкой <test-src-rpm-basename>. Я дополнил эту таблицу ещё одним полем: <test-src-rpm-basename> <incoming-rpm-basename> <incoming-src-rpm-basename> Последнее поле означает, какой src.rpm пакет собрался в incoming'е. Это нужно для того, чтобы учитывать, что из одного src.rpm пакета при сборке в среднем получается больше одного установочного пакета, которые будут вставать в чрут. Это не должно искажать статистики. Я выложил эту таблицу сюда (952K): ftp://ftp.altlinux.org/pub/people/at/rebuild-map.bz2 Вот несколько случайных строчек этой таблицы: $ perl -MList::Util=shuffle -e 'print +(shuffle<>)[1..10]' <rebuild-map qmmp-0.1.3.1-alt1.src.rpm libxkbfile-devel-1.0.4-alt1.i586.rpm libxkbfile-1.0.4-alt1.src.rpm emacs-apel-10.6-alt1.20050606.src.rpm emacs-devel-0.0.1-alt3.noarch.rpm emacs-devel-0.0.1-alt3.src.rpm kde-styles-klearlook-0.9.9.2-alt1.1.src.rpm libXmu-devel-1.0.3-alt1.i586.rpm libXmu-1.0.3-alt1.src.rpm k3b-i18n-full-1.0.3-alt3.src.rpm gccmakedep-1.0.1-alt1.i586.rpm gccmakedep-1.0.1-alt1.src.rpm grip-3.1.3-alt5.src.rpm libjpeg-6b-alt8.i586.rpm libjpeg-6b-alt8.src.rpm wmmemload-0.1.6-alt3.src.rpm libXext-1.0.3-alt1.i586.rpm libXext-1.0.3-alt1.src.rpm xfce4-panel-4.4.1-alt2.src.rpm libfreetype-devel-2.3.5-alt2.i586.rpm libfreetype-2.3.5-alt2.src.rpm mysql-gui-tools-5.0r12-alt1.src.rpm libXp-1.0.0-alt3.0.i586.rpm libXp-1.0.0-alt3.0.src.rpm tracker-0.6.0-alt0.1.src.rpm libpoppler-glib-devel-0.5.4-alt6.i586.rpm poppler-0.5.4-alt6.src.rpm showfont-1.0.1-alt1.src.rpm libFS-1.0.0-alt2.i586.rpm libFS-1.0.0-alt2.src.rpm $ Замечу, что эту таблицу нужно читать в обратном порядке, справа налево: "пришёл пакет libxkbfile-*.src.rpm, из него собрался пакет libxkbfile-devel-*.i586.rpm, из-за чего придётся протестировать пересборкой qmmp-*.src.rpm" и т.д. Среднее поле в таблице на самом деле оказывается не слишком нужным, я его удалю: $ cut -f1,3 rebuild-map |sort -u -k2,2 -k1,1 >.ss $ perl -MList::Util=shuffle -e 'print +(shuffle<>)[1..10]' <.ss lprof-1.11.4.1-alt1.src.rpm libxml2-2.6.29-alt2.src.rpm $ "Пришел пакет libxml2-*.src.rpm, требуется протестировать пересборкой lprof-*.src.rpm". Теперь несложно для каждого входящего пакета в incoming (справа) вычислить число src.rpm пакетов (слева), подлежащих пересборке. $ uniq -c -f1 .ss |head -1 144 alt-docs-main-0.4-alt7.src.rpm ALDConvert-0.05-alt8.src.rpm $ Здесь alt-docs-main это просто первый пакет, который попался и поэтому остался, суть в том, что пакет ALDConvert-*.src.rpm на входе, если он конечно соберётся, потребует протестировать пересборкой 144 пакетов. Я теперь сделаю совсем уж интуитивно понятную таблицу <incoming-src-rpm-basename> <rebuild-number-src-rpm> $ uniq -c -f1 .ss |awk '{print$3"\t"$1}' |sort -k2,2n >.sz $ head -2 .sz GraphicsMagick-1.1.8-alt1.src.rpm 1 MySQL41-4.1.21-alt5.1.src.rpm 1 $ tail .sz libSM-1.0.3-alt1.src.rpm 1952 libICE-1.0.4-alt1.src.rpm 1962 fontconfig-2.4.2-alt3.src.rpm 2120 libXext-1.0.3-alt1.src.rpm 2196 libfreetype-2.3.5-alt2.src.rpm 2203 gcc4.1-4.1.1-alt11.src.rpm 2365 libXau-1.0.3-alt1.src.rpm 2388 libXdmcp-1.0.2-alt1.0.src.rpm 2389 libX11-1.1.3-alt3.src.rpm 2392 expat-2.0.1-alt0.1.src.rpm 2646 $ Видим, что GraphicsMagick на входе потребует пересборки всего одного src.rpm пакета (кстати, это koffice), а expat на входе потребует пересобрать уже 2646 src.rpm пакетов. Всего сейчас в репозитарии 6687 src.rpm пакетов (с точки зрения этой статистики). ЗДЕСЬ НЕ УЧИТЫВАЮТСЯ ИЗМЕНЕНИЯ В basesystem + rpm-build. Любой пакет, который попадает в basesystem + rpm-build, потребует, по идее, полной пересборки сизифа, и этот случай я сейчас специально отсёк. Никакой другой пакет, однако, не может зацепить для пересборки даже и половину сизифа. Я пока объявляю пакеты из basesystem + rpm-build частным случаем, который в данной статистике не рассматривается. Сколько же всего имеется "входных" src.rpm пакетов, которые могут потребовать пересборку чего-либо? $ wc -l <.sz 2261 $ Это означает, что ТОЛЬКО КАЖДЫЙ ТРЕТИЙ ПАКЕТ просит что-то пересобрать. Большая половина пакетов являются "листьями" ("приложениями") и заведомо не влияют на собираемость каких-либо других пакетов. Значит, будем считать среднее количество пакетов на пересборку для "каждого третьего" пакета, а на каком-то этапе результат просто поделим результат на три. С точки зрения мат. статистики это, наверное, не совсем правильно, то для грубой оценки сойдет. Итак, распределение числа пакетов, подлежащих пересборке. Среднее значение значение 78 пакетов, медиана распределения 5 пакетов, сигма 253 пакета. Как и со временем сборки пакетов, получилось распределение с маленьким средним значением и большой сигмой. Значит, говорить об "единичном случае" не серьезно, нужно считать значения для серии пакетов. Прежде всего однако прикинем порядок среднего значения. 78 пакетов * 74 секунды это порядка 100 минут. Рационально считать время сборки для серии из 25 входящих src.rpm пакетов. Это очень грубо означает, что мы закладываемся на "суточную норму", и неудачные последовательности входящих пакетов с достаточно высокой надежностью не должны выбрасывать нас за пределы суток. Прежняя формула для "достаточно надёжного заклада" говорит: P( xi(N) <= N*(mu+2*sigma/sqrt(N) ) >= 0.95 В данном случае xi(N) -- суммарное число src.rpm пакетов, подлежащих пересборке на серии из N входящих пакетов, N=25; mu=78 пакетов, sigma=253 пакета. Вычислим член mu+2*sigma/sqrt(N), он даёт "среднее по выборке из 25" с надёжностью 95% на превышение суммарного времени. $ perl -le 'print 78+2*253/5' 179.2 $ Значит, чтобы нас не шатало "по суточной норме", вместо среднего значения 78 пакетов нужно брать с запасом 179 пакетов. Сколько времени будут собираться 179 пакетов? Из предыдущего письма известно, что t(N) = N*(74+2*189/sqrt(N)); t(179) = 18303 секунды = 5 часов. Итого, каждый третий входящий src.rpm пакет с вероятностью 95% уложится на пересборочном тестировании в 5 часов; это усреднение по 25 входящим пакетам. То есть на самом деле утверждение состоит в том, что 25 входящих src.rpm с вероятностью около 95% уложатся в 25*5=125 часов. Среднее же время без "суточной надёжности" составляет, как уже посчитано, 78 пакетов на пересборку * 74 секунды = 100 минут. ЭТО ОЗНАЧАЕТ, ЧТО СРЕДНЯЯ ЗАГРУЗКА СЕРВЕРОВ на большом промежутке времени (допустим, месяц) составит 100 минут/25 часов = 7%. (Имеется в виду загрузка только на пересборочном тестировании.) Запас серверной мощности, нужен, по сути, для того, чтобы "неудачная последовательность входящих пакетов" не заставляла нас слишком долго ждать. Настало время поделить на 3. Подумаем, насколько это корректно. Мы исходили из того, что все входящие пакеты подряд требуют что-то пересобрать. Теперь они будут "перемешиваться" с пакетами, которые пересобрать ничего не требуют. Значит, это не должно ухудшить показателя за счёт каких-либо выбросов. ИТОГО, 5 часов/3 = 100 минут. ОТВЕТ: на серии из N пакетов, где N порядка 25, суммарное время пересборочного тестирования с вероятностью 95% не превысит N*100 минут. Это довольно грубый ответ, и реально он может отличаться раза в два, но не на порядок. Завтра я попробую провести численный эксперимент, который даст альтернативный и реально более правильный ответ. Теперь настало время понять, чем статистика отличается от наглой лжи. Ведь если пришёл пакет expat, то придётся ждать 54 часа, что на порядок больше 5 часов и, похоже, выбрасывает нас за суточную норму. Просто expat выбивается за пределы 95-процентной надёжности. Но в этом году пакет expat был собран всего один раз. То есть при случайном поступлении пакетов появление expat это очень редкое событие. Придётся подождать. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* [devel] Критерий значимости пакета (Was: статистика) 2007-08-24 21:23 ` [devel] статистика [2] Alexey Tourbin @ 2007-08-25 14:57 ` Alexey Rusakov 2007-08-25 20:10 ` Денис Смирнов 2007-08-29 20:39 ` [devel] статистика [2] Dmitry V. Levin 1 sibling, 1 reply; 46+ messages in thread From: Alexey Rusakov @ 2007-08-25 14:57 UTC (permalink / raw) To: devel Я позволю себе заговорить независимо чуток на другую тему, которая, благодаря at@, получила продолжение. On Sat, 25 Aug 2007 01:23:57 +0400 Alexey Tourbin wrote: > Займемся теперь вопросом, сколько же сизифовских пакетов придётся > тестировать пересборкой на каждый входящий src.rpm пакет. У меня > есть полная таблица, кусочек которой приведен выше. Введу новое > обозначение для полей таблицы: > <test-src-rpm-basename> <incoming-rpm-basename> > Это означает, что собравшийся в incoming'е пакет <incoming-rpm-basename>, > оказывается, встает в чрут для сборки <test-src-rpm-basename>. Значит, > вследствие прохождения <incoming-rpm-basename> нужно протестировать > пересборкой <test-src-rpm-basename>. > > Я дополнил эту таблицу ещё одним полем: > <test-src-rpm-basename> <incoming-rpm-basename> <incoming-src-rpm-basename> > > Последнее поле означает, какой src.rpm пакет собрался в incoming'е. > Это нужно для того, чтобы учитывать, что из одного src.rpm пакета > при сборке в среднем получается больше одного установочного пакета, > которые будут вставать в чрут. Это не должно искажать статистики. > > Я выложил эту таблицу сюда (952K): > ftp://ftp.altlinux.org/pub/people/at/rebuild-map.bz2 > [...] > Я теперь сделаю совсем уж интуитивно понятную таблицу > <incoming-src-rpm-basename> <rebuild-number-src-rpm> > > $ uniq -c -f1 .ss |awk '{print$3"\t"$1}' |sort -k2,2n >.sz > $ head -2 .sz > GraphicsMagick-1.1.8-alt1.src.rpm 1 > MySQL41-4.1.21-alt5.1.src.rpm 1 > $ tail .sz > libSM-1.0.3-alt1.src.rpm 1952 > libICE-1.0.4-alt1.src.rpm 1962 > fontconfig-2.4.2-alt3.src.rpm 2120 > libXext-1.0.3-alt1.src.rpm 2196 > libfreetype-2.3.5-alt2.src.rpm 2203 > gcc4.1-4.1.1-alt11.src.rpm 2365 > libXau-1.0.3-alt1.src.rpm 2388 > libXdmcp-1.0.2-alt1.0.src.rpm 2389 > libX11-1.1.3-alt3.src.rpm 2392 > expat-2.0.1-alt0.1.src.rpm 2646 > $ > > Видим, что GraphicsMagick на входе потребует пересборки всего одного > src.rpm пакета (кстати, это koffice), а expat на входе потребует > пересобрать уже 2646 src.rpm пакетов. Всего сейчас в репозитарии 6687 > src.rpm пакетов (с точки зрения этой статистики). > > ЗДЕСЬ НЕ УЧИТЫВАЮТСЯ ИЗМЕНЕНИЯ В basesystem + rpm-build. > Любой пакет, который попадает в basesystem + rpm-build, потребует, > по идее, полной пересборки сизифа, и этот случай я сейчас специально > отсёк. Никакой другой пакет, однако, не может зацепить для пересборки > даже и половину сизифа. В своё время, ещё в конце прошлого года, обсуждалась тема критерия заморозки Сизифа. Я и mithraen@ более-менее независимо толкнули идею о том, что замораживать Сизиф можно с разной "глубиной", основываясь на том, какие пакеты насколько "значимы" для репозитория. В первом приближении в качестве критерия значимости предлагалось учитывать количество зависимостей от этого пакета. В частности, говорилось следующее: On Tue, 2 Jan 2007 15:54:24 +0300 Денис Смирнов wrote: > On Sun, Dec 31, 2006 at 07:37:45PM +0300, Alexey Rusakov wrote: > > AR> А возможно определить формальную величину "значимости" пакета через > AR> количество зависящих от него пакетов? Неоднозначные зависимости можно > AR> учитывать либо через коэффициент < 1, либо учитывать все возможноые > AR> варианты. Если мы сможем определить такую величину, то дальше можно > AR> устанавливать этапы, замораживая пакеты со "значимостью" больше, чем > AR> некоторая очередная величина. Подход, конечно, наивный, но в качестве > AR> первого приближения почему бы и нет. > > Когда-то я ровно это и предлагал. Вопрос лишь в том как правильно > отрабатывать нечеткие зависимости (с >= %version, например)? > > Так как эта задача не требует абсолютно точного результата, то можно все > нечеткие зависимости представлять себе как самые что ни на есть четкие. > Тогда можно получить вполне осмысленный результат за разумное время. Так вот, по-моему, приведённый at@ метод, в качестве побочного эффекта, даёт такой критерий, причём в более удачной формулировке, чем высказанная раньше. -- Alexey "Ktirf" Rusakov GNOME Project ALT Linux Team ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] Критерий значимости пакета (Was: статистика) 2007-08-25 14:57 ` [devel] Критерий значимости пакета (Was: статистика) Alexey Rusakov @ 2007-08-25 20:10 ` Денис Смирнов 2007-08-25 20:28 ` Alexey Tourbin 0 siblings, 1 reply; 46+ messages in thread From: Денис Смирнов @ 2007-08-25 20:10 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 995 bytes --] On Sat, Aug 25, 2007 at 06:57:28PM +0400, Alexey Rusakov wrote: >> Когда-то я ровно это и предлагал. Вопрос лишь в том как правильно >> отрабатывать нечеткие зависимости (с >= %version, например)? >> Так как эта задача не требует абсолютно точного результата, то можно все >> нечеткие зависимости представлять себе как самые что ни на есть четкие. >> Тогда можно получить вполне осмысленный результат за разумное время. AR> Так вот, по-моему, приведённый at@ метод, в качестве побочного эффекта, AR> даёт такой критерий, причём в более удачной формулировке, чем высказанная раньше. Метод разрабатываемый at@ позволяет решить _одну из_ проблем, которые я перед собой ставил. Правда более эффективным способом. Меня ещё волновала реальная устанавливаемость, а это отдельная тема. -- С уважением, Денис http://freesource.info ---------------------------------------------------------------------------- С каких это пор запрещается желать странного? -- slava in devel@ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] Критерий значимости пакета (Was: статистика) 2007-08-25 20:10 ` Денис Смирнов @ 2007-08-25 20:28 ` Alexey Tourbin 2007-08-25 22:47 ` Денис Смирнов 0 siblings, 1 reply; 46+ messages in thread From: Alexey Tourbin @ 2007-08-25 20:28 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 918 bytes --] On Sun, Aug 26, 2007 at 12:10:35AM +0400, Денис Смирнов wrote: > >> Когда-то я ровно это и предлагал. Вопрос лишь в том как правильно > >> отрабатывать нечеткие зависимости (с >= %version, например)? > >> Так как эта задача не требует абсолютно точного результата, то можно все > >> нечеткие зависимости представлять себе как самые что ни на есть четкие. > >> Тогда можно получить вполне осмысленный результат за разумное время. > AR> Так вот, по-моему, приведённый at@ метод, в качестве побочного эффекта, > AR> даёт такой критерий, причём в более удачной формулировке, чем высказанная раньше. > > Метод разрабатываемый at@ позволяет решить _одну из_ проблем, которые я > перед собой ставил. Правда более эффективным способом. > > Меня ещё волновала реальная устанавливаемость, а это отдельная тема. Реальную устанавливаемость можно проверить этим же методом, просто написать другой скрипт на lua. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] Критерий значимости пакета (Was: статистика) 2007-08-25 20:28 ` Alexey Tourbin @ 2007-08-25 22:47 ` Денис Смирнов 2007-08-25 23:55 ` Alexey Tourbin 0 siblings, 1 reply; 46+ messages in thread From: Денис Смирнов @ 2007-08-25 22:47 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 766 bytes --] On Sun, Aug 26, 2007 at 12:28:58AM +0400, Алексей Турбин wrote: >> Метод разрабатываемый at@ позволяет решить _одну из_ проблем, которые я >> перед собой ставил. Правда более эффективным способом. >> Меня ещё волновала реальная устанавливаемость, а это отдельная тема. AT> Реальную устанавливаемость можно проверить этим же методом, AT> просто написать другой скрипт на lua. Разумно. Правда есть ряд тонкостей которые так не решить. Например наличие файловых конфликтов при отсутствии реальных конфликтов. Это однако тоже бага, и она у нас вообще никак не тестируется. -- С уважением, Денис http://freesource.info ---------------------------------------------------------------------------- Это в спеке притаился define. -- pilot in #7092 [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] Критерий значимости пакета (Was: статистика) 2007-08-25 22:47 ` Денис Смирнов @ 2007-08-25 23:55 ` Alexey Tourbin 0 siblings, 0 replies; 46+ messages in thread From: Alexey Tourbin @ 2007-08-25 23:55 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1.1: Type: text/plain, Size: 2866 bytes --] On Sun, Aug 26, 2007 at 02:47:13AM +0400, Денис Смирнов wrote: > On Sun, Aug 26, 2007 at 12:28:58AM +0400, Алексей Турбин wrote: > > >> Метод разрабатываемый at@ позволяет решить _одну из_ проблем, которые я > >> перед собой ставил. Правда более эффективным способом. > >> Меня ещё волновала реальная устанавливаемость, а это отдельная тема. > AT> Реальную устанавливаемость можно проверить этим же методом, > AT> просто написать другой скрипт на lua. > > Разумно. Кстате вот скрипт. Он тоже форкается, для работы нужен пакет lua5-posix (или положить в текущий каталог posix.so). Кроме того, НУЖЕН ЧМОД. [at@hint1 ~]$ hsh --init Components: hasher Processing pkglists... hasher done Processing srclists... hasher done Creating component releases... done Updating global release file... done Appending MD5Sum... hasher done All your base are belong to us!!! [at@hint1 ~]$ chmod -w /tmp/.private/at/build/aptbox/var/lib/rpm [at@hint1 ~]$ /tmp/.private/at/build/aptbox/apt-get script -qq ./test.lua cannot install: TORCS-data-cars cannot install: Localizer cannot install: GroupUserFolder cannot install: pdns-devel cannot install: pgpool-II-devel cannot install: gnome-applets-common cannot install: vegastrike cannot install: kernel-modules-nvidia_legacy_96xx-ovz-smp cannot install: libopensync-plugin-evolution2 cannot install: CMF-CMFCalendar cannot install: xmms-in-xmp cannot install: gnome-applets-cpufreq cannot install: gnome-applets-mini-commander cannot install: horde3 cannot install: CMFFormController cannot install: gtuxnes cannot install: python-module-twisted cannot install: exUserFolder cannot install: firefox-fxif cannot install: balsa cannot install: CMFQuickInstallerTool cannot install: perl-Geo-IP cannot install: gnome-sisyphus-minimal cannot install: mod_geoip cannot install: gnome-applets-drivemount cannot install: kernel-modules-nvidia_legacy_71xx-std-smp cannot install: gnome-sisyphus-default cannot install: fuse-complete cannot install: perl-MP3-Tag-utils cannot install: CMF cannot install: pyvnc2swf cannot install: BTreeFolder2 cannot install: heartbeat-devel cannot install: gnome-applets-gweather-devel cannot install: libGeoIP-tools cannot install: gnome-applets-mixer cannot install: xmp-alsa cannot install: gnome-applets-stickynotes cannot install: thunderbird-quotecollapse cannot install: xmp-arts cannot install: abiword ... Как бы проверить правильно работает или нет. И диагностику не знаю как получить, почему не устанавливается. И как этот аптовский кеш устроен никакой возможность понять нет, приходится форкаться. > Правда есть ряд тонкостей которые так не решить. > Например наличие файловых конфликтов при отсутствии реальных конфликтов. > Это однако тоже бага, и она у нас вообще никак не тестируется. Про это потом напишу. [-- Attachment #1.2: test.lua --] [-- Type: text/plain, Size: 647 bytes --] posix = require "posix" command_consume=1 for _,pkg in ipairs(pkglist()) do verlist = pkgverlist(pkg) installed = nil nver = 0 for _,ver in ipairs(verlist) do if pkgvercur(pkg) == ver then -- print("already installed: " .. pkgname(pkg) .. "#" ..verstr(ver)) installed = 1 end nver = nver + 1 end if not installed and nver > 0 then pid = posix.fork() assert(pid >= 0) if pid == 0 then markinstall(pkg) if statinstbroken(pkg) then print("cannot install: " .. pkgname(pkg)) end os.exit(0) else posix.wait(pid) end end end [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [devel] статистика [2] 2007-08-24 21:23 ` [devel] статистика [2] Alexey Tourbin 2007-08-25 14:57 ` [devel] Критерий значимости пакета (Was: статистика) Alexey Rusakov @ 2007-08-29 20:39 ` Dmitry V. Levin 1 sibling, 0 replies; 46+ messages in thread From: Dmitry V. Levin @ 2007-08-29 20:39 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 2111 bytes --] On Sat, Aug 25, 2007 at 01:23:57AM +0400, Alexey Tourbin wrote: [...] > Я теперь сделаю совсем уж интуитивно понятную таблицу > <incoming-src-rpm-basename> <rebuild-number-src-rpm> > > $ uniq -c -f1 .ss |awk '{print$3"\t"$1}' |sort -k2,2n >.sz > $ head -2 .sz > GraphicsMagick-1.1.8-alt1.src.rpm 1 > MySQL41-4.1.21-alt5.1.src.rpm 1 > $ tail .sz > libSM-1.0.3-alt1.src.rpm 1952 > libICE-1.0.4-alt1.src.rpm 1962 > fontconfig-2.4.2-alt3.src.rpm 2120 > libXext-1.0.3-alt1.src.rpm 2196 > libfreetype-2.3.5-alt2.src.rpm 2203 > gcc4.1-4.1.1-alt11.src.rpm 2365 > libXau-1.0.3-alt1.src.rpm 2388 > libXdmcp-1.0.2-alt1.0.src.rpm 2389 > libX11-1.1.3-alt3.src.rpm 2392 > expat-2.0.1-alt0.1.src.rpm 2646 > $ > > Видим, что GraphicsMagick на входе потребует пересборки всего одного > src.rpm пакета (кстати, это koffice), а expat на входе потребует > пересобрать уже 2646 src.rpm пакетов. Всего сейчас в репозитарии 6687 > src.rpm пакетов (с точки зрения этой статистики). > > ЗДЕСЬ НЕ УЧИТЫВАЮТСЯ ИЗМЕНЕНИЯ В basesystem + rpm-build. Однако в списке присутствует gcc4.1-4.1.1-alt11.src.rpm (скорее всего, посредством gcc-c++), который входит в [rpm-build]. > Любой пакет, который попадает в basesystem + rpm-build, потребует, > по идее, полной пересборки сизифа, и этот случай я сейчас специально > отсёк. А если его тоже посчитать? Взять статистику поступления этих пакетов в Сизиф, и прикинуть хотя бы вероятность того, что пришедший в /i/S пакет попадает в это множество. [...] > ИТОГО, 5 часов/3 = 100 минут. > ОТВЕТ: на серии из N пакетов, где N порядка 25, суммарное время > пересборочного тестирования с вероятностью 95% не превысит N*100 минут. На практике это число, по видимому, меньше в несколько раз, поскольку конкретный сборочный сервер, о котором идёт речь, рассчитан на 4 параллельные сборки, да и производительность у него выше того среднего значения. Вывод, который можно сделать, простой: описанное ранее пересборочное тестирование мы можем себе позволить уже на тех ресурсах, -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
end of thread, other threads:[~2007-08-29 20:39 UTC | newest] Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-08-21 21:43 [devel] RFC: тестирование входящих пакетов полной пересборкой сизифа Alexey Tourbin 2007-08-22 5:25 ` Денис Смирнов 2007-08-22 8:22 ` Хихин Руслан 2007-08-23 10:19 ` Alexey Tourbin 2007-08-23 11:10 ` Michael Shigorin 2007-08-23 11:16 ` Mykola S. Grechukh 2007-08-23 11:18 ` Mykola S. Grechukh 2007-08-23 11:52 ` [devel] [JT] " Michael Shigorin 2007-08-23 12:10 ` Mykola S. Grechukh 2007-08-23 12:11 ` Michael Shigorin 2007-08-23 12:32 ` Alexey Tourbin 2007-08-23 19:05 ` [devel] статистика Alexey Tourbin 2007-08-23 20:25 ` Alexey Tourbin 2007-08-23 20:37 ` Vadim V. Zhytnikov 2007-08-23 19:51 ` Alexey Tourbin 2007-08-23 21:03 ` Alexey Tourbin 2007-08-23 21:08 ` Хихин Руслан 2007-08-23 21:47 ` Alexey Tourbin 2007-08-23 21:59 ` Alexey Tourbin 2007-08-23 22:19 ` Alexey Tourbin 2007-08-23 12:19 ` [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа Alexey Tourbin 2007-08-23 13:12 ` Michael Shigorin 2007-08-24 11:15 ` Alexey Tourbin 2007-08-25 9:15 ` Alexey I. Froloff 2007-08-25 9:33 ` Alexey Tourbin 2007-08-25 10:16 ` Alexey I. Froloff 2007-08-25 11:25 ` Igor Vlasenko 2007-08-25 11:36 ` Igor Vlasenko 2007-08-25 11:48 ` Michael Shigorin 2007-08-25 11:53 ` Mykola S. Grechukh 2007-08-25 21:58 ` Igor Vlasenko 2007-08-25 22:43 ` Alexey Tourbin 2007-08-25 23:35 ` Igor Vlasenko 2007-08-26 13:38 ` Alexey I. Froloff 2007-08-25 18:33 ` Alexey Tourbin 2007-08-25 19:32 ` [devel] incominger Michael Shigorin 2007-08-25 20:13 ` [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа Денис Смирнов 2007-08-23 13:23 ` [devel] " Alexey Tourbin 2007-08-24 12:51 ` Alexey Tourbin 2007-08-24 21:23 ` [devel] статистика [2] Alexey Tourbin 2007-08-25 14:57 ` [devel] Критерий значимости пакета (Was: статистика) Alexey Rusakov 2007-08-25 20:10 ` Денис Смирнов 2007-08-25 20:28 ` Alexey Tourbin 2007-08-25 22:47 ` Денис Смирнов 2007-08-25 23:55 ` Alexey Tourbin 2007-08-29 20:39 ` [devel] статистика [2] Dmitry V. Levin
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