Mailinglist Archive: opensuse-buildservice (73 mails)

< Previous Next >
Re: [opensuse-buildservice] OBS scheduler features

Hi!

First of all thank you for looking into the gory parts of the
open build service! ;)

On Fri, Jul 21, 2017 at 09:01:44AM +0300, Oleg Ogurtsov wrote:
I have two patches for review:
1. Fix a problem with different names - OBS package name and RPM name
described in the spec-file.
For example: OBS package name 'linaro-gcc', but name of rpm is 'gcc'.

This should work. So you'll need to be much more specific on where the
problem is. Your patch does a couple of things:

- it changes the way the $notready hash is used, it also uses the
OBS package name.

I don't understand why this is needed. The current policy is to
put rpm source names into the hash, because we can get the source
names from the repository metadata.

- it changes the way package sorting works

Yes, I think there is indeed a bug in the current code, it seems
to mix rpm source names with OBS package names.
You might also have a problem in your code, because multiple
OBS packages can build the same source (this is common when more
than one version of a package is built). So your %name2pkgid hash
must map to an array, not scalar. Setting up a dep2pkgid hash might
be easier, though.

2. Change a scheduler mechanism. The build of non-cyclic packets wait
the builds of cyclic packets.
This has some advantages: reduce time of project build, reducing number
of packages rebuilds.
I tested the patches on the project with 129 packages (41 cyclic) - the
build time was reduced by ~33%.

Hmm, I remember mailing with Pavel Kopyl from Samsung about improving
the handling of cycles. Is this related?

I think the patch does way to much to implement this. My suggestion
from the mail thread was just to tweak the code so that non-cycle
packages come after the cycle ones, and then change the code so that
"$notready" is set of all cycle packages if one of them is
building/blocked.

I'll check how much change that would be next week, we can then
discuss things further.

Again, thanks for daring to improve the messy parts of the backend
code.

Cheers,
Michael.

--
Michael Schroeder mls@xxxxxxx
SUSE LINUX GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg
main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}
--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >
References