Open ignatenkobrain opened 5 years ago
From history of rust-parking_lot package it looks like Koschei did detect dependency problem. But it detected it after scratch builds were submitted.
This is a well known race condition. As soon as Koji generates new build repo Koschei will try to resolve all package dependencies in this repo, but in the meantime Koji can generate another repository. Eventually Koschei will process the new repo too, but for during some period of time scratch builds submitted will be ran in the new repo, while dependencies resolved by Koschei are from the old repo. Due to big performance regression in hawkey this race condition started to be more problematic in the last year as now it takes Koschei much more time to process repos.
This race condition is trivial to fix on Koschei side. It would be enough to simply request scratch builds in specific repo - the latest one for which Koschei resolved dependencies. Koji has existing API to do this (see koji build --help
, it allows setting custom repo ID), but Fedora Koji policy does not allow Koschei to use this option ("builds from expired repos are only allowed for admins"). I wanted Koschei to run builds from specific repo ID from very beginning (as indicated eg. in a3db8c0f1445b81a81530cca95f7159fb62b17b6 - the last item "Policy for scratch builds from repo ID"), but Fedora release engineering is not willing to enable it and would not listen to any arguments.
To summarize, I can easily fix this on Koschei side. But for the fix to be effective, you need to convince Fedora relengs to allow adjusting Koji hub policy to allow Koschei to submit scratch builds from expired repos. The patch for this policy change is trivial (single-line addition) and I can provide the patch.
https://apps.fedoraproject.org/koschei/build/5583710
Basically the reason might be https://bugzilla.redhat.com/show_bug.cgi?id=1534123, but I guess nobody from DNF team cares.