Bug 42552 - Add option --keep-going to continue build even with errors
Summary: Add option --keep-going to continue build even with errors
Status: NEW
Alias: None
Product: Infrastructure
Classification: Infrastructure
Component: girar (show other bugs)
Version: unspecified
Hardware: x86_64 Linux
: P5 normal
Assignee: placeholder@altlinux.org
QA Contact: Andrey Cherepanov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-04-22 16:33 MSK by Vitaly Chikunov
Modified: 2023-11-23 12:58 MSK (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Chikunov 2022-04-22 16:33:09 MSK
Currently --fail-late stops build on architecture where previously build failure occurred.

Please add option, like --keep-going, to continue build all subtasks even if other tasks are failed.

This will be useful to build new major kernel versions with many external modules (for example, we have 42 packages for std-def)
- Failed tasks not need to be deleted to continue build - thus, their build logs can be inspected later (when we announce build of new kernel);
- There will be no need to delete sub-task and re-run task to continue test build multiple times after each failure (I think I did this >10 times and this took whole day of real time).
Comment 1 Sergey V Turchin 2022-04-22 16:38:23 MSK
Есть же --swift
Comment 2 Sergey V Turchin 2022-04-22 16:39:41 MSK
Точнее, уже --hurry
Comment 3 Vitaly Chikunov 2022-04-22 16:54:48 MSK
"Hurry включает режим swift, в котором сборочница считает, что если пакет был хоть раз собран, то no need to rebuild." На сколько я понял из с Глебом сейчас другого варианта продолжения сборки кроме удаления failed subtasks нет.
Comment 4 Grigory Ustinov 2022-04-22 17:26:08 MSK
Поддерживаю.

Я когда-то себе написал скрипт, который каждые n секунд рсинкает events.M.1.log, грепает ключевую фразу task #****** for sisyphus FAILED и если получилось, грепает какой сабтаск свалился, удаляет его, повышает счётчик M и запускает таск снова. Можно заодно рсинкать и логи фейлов.
Comment 5 Anton Farygin 2022-04-22 17:31:36 MSK
да, я бы тоже не отказался от такой опции.

Потом было бы удобно удалить из задания упавшие подзадания, добавить их в конец и запустить заново.
Comment 6 Sergey V Turchin 2022-04-25 10:39:53 MSK
А я бы ещё при этом делал репозиторий независимо от результатов сборки, чтобы можно было сразу же работать над оставшимися пакетами.

Ведь те, что собрались, зачастую нужны для сборки остальных.
Comment 7 Ivan A. Melnikov 2023-11-23 12:56:40 MSK
keep_going это очень круто; когда-то я сделал такой флаг для sisyphus_mipsel и sisyphus_riscv64. Для sisyphus_loongarch64 реализация выглядит так:

https://git.altlinux.org/people/iv/packages/girar.git?a=commitdiff;h=af466d56756672c15a13e8da0a2392a923cc363c

(в этом коммите нет интерфейса для пользователей).

Очень помогает при массовых пересборках и приезжающих из основного Сизифа огромных таксках.
Comment 8 Ivan A. Melnikov 2023-11-23 12:58:09 MSK
(In reply to Sergey V Turchin from comment #6)
> А я бы ещё при этом делал репозиторий независимо от результатов сборки,
> чтобы можно было сразу же работать над оставшимися пакетами.

+1, можно было бы подключить таску к хешеру и чинить то, что там не собралось. Но это кажется темой отдельной баги. Такая есть?