From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 19 Aug 2021 17:16:46 +0300 From: "Dmitry V. Levin" To: devel@lists.altlinux.org Message-ID: <20210819141646.GB7127@altlinux.org> References: <20210819133700.GA22477@dad.imath.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210819133700.GA22477@dad.imath.kiev.ua> Subject: Re: [devel] =?koi8-r?b?z8LOwdLV1sXOycUg2sHDycvMydfbycjT0SDTws/Sz8s=?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Aug 2021 14:16:47 -0000 Archived-At: List-Archive: List-Post: On Thu, Aug 19, 2021 at 04:37:01PM +0300, Igor Vlasenko wrote: [...] > К примеру, сейчас, если тесты при сборке пакета сорвутся в > цикл, что-то понемногу выводя (не провоцируя wlimit_time_idle), > то для пакета, собирающегося 3-5 мин. придется ждать 10 часов, > чтобы сработал wlimit_time_elapsed. > Если бы wlimit_time_elapsed коррелировал со временем сборки пакета, > то время ожидания падения сборки было бы более человекоориентированным. > > Если же цикл активно выводит, то сработает wlimit_bytes_written. > Я сталкивался с такими логами сборки в процессе разработки > logoved. Лог в пол гигабайта, где первые 50-100 килобайт - осмысленный > лог сборки, затем 500 мегабайт мусора, затем сообщение, что наконец > сработал wlimit_bytes_written. > > Логовед такой лог парсил десятки минут. Да и лишний трафик напрягает. > Если бы wlimit_bytes_written коррелировал с размером нормального лога пакета, > то логи FTBFS были бы гораздо более человеко- и машинно- читабельными. Что такое время нормальной сборки пакета и размер нормального лога пакета? Смотрите, у нас в сборочнице есть такой код: # Step 8: build. rm -f "$tmpdir"/OK{1,2} { hsh-rebuild --query-repackage "$build_source" 2>&1 && touch "$tmpdir"/OK1 ||: } | { gawk 'BEGIN{ts0=systime()}{print strftime("[%T]",systime()-ts0,1),$0}' > build/log && touch "$tmpdir"/OK2 ||: } [ -f "$tmpdir"/OK1 -a -f "$tmpdir"/OK2 ] || { . ./gb-remote-log sed -r 's/^\[[0-9]{2}(:[0-9]{2}){2}\] //' build/log | buildlog_errors | sed "s/^/$arch_prefix/" Fatal 'build failed' } >&2 Ничто не мешает усовершенствовать скрипт, который сейчас однострочник на gawk, просто добавляющий в лог временные отметки, таким образом, чтобы обнаруживать зацикливание и прерывать сборку. Возьмётесь реализовать? -- ldv