Hi, Some comments inline, but I will say the automatic rebuilds triggered in OBS are definitely a feature and not a defect :) On Thu, 26 Feb 2015 16:26:38 +0800 Ji Xiang <jixiang@syberos.com> wrote:
On Thursday, February 26, 2015 08:26:09 AM Adrian Schröter wrote:
On Donnerstag, 26. Februar 2015, 14:59:21 wrote Ji Xiang:
Hello everyone, I have been confused for long time in terms of the rebuild (or I can say 'scheduling') mechanism of OBS. The most confused point is why a full rebuild is needed for software release on OBS.
Well if it is "needed" can always be discussed. But it is needed _IF_ you want to be sure that you are able to rebuild it after releasing it (eg. the newer gcc may just crash or header files suddenly provide conflicting definitions). Also some changes could apply which are not expressed in the dependencies of packages.
Many thanks for your kind of answer, do you mind give me a example what kind of the change which are not included in the dependency? The major reason I asked this question is we are using OBS, however we found that it takes quite long time to do a full build(some packages are built many times due to the dependency), and if there are some changes happened at low layer(like glibc , qt etc), all the packages will be built, we have to wait for long time. It can not met the requirement of fast release process.
If glibc or Qt are rebuilt for some reason, you *defintely* want packages which depend on them rebuilt. This the magic of OBS which guarantees all packages publish in a coherent state. If you do not you may have symbol mismatches or location errors among other nastiness. Changes might include a patch which changes something with loading a library or other functional issue which is not simply expressed a by a version update.
So I am trying to understand how the scheduling mechanism of OBS working, and how to optimize the build time to make OBS well support the fast release process.
You very well need more build power in your workers, faster machines, more memory, fast disks or all of the above. You did not state how much time is "slow" nor how you are running the OBS systems. I strongly advise everyone running a private OBS be running on bare metal. If you gave a description of your hardware layout and what machines are running which components, we can gladly give some advise to optimize the hardware. I've implemented a few private OBS instances and you would be suprised how much stress OBS puts on hardware.
This is why I tried the 'rebuild' and 'block' options, but it is said in the document set both to the non-default value will cause some build and dependency problem. If both option are not 'security', then I can not use it to optimize the build speed.
It is said in the document which describes the scheduling strategies that if we don't use the default value of "rebuild" and "block" option for scheduling, there will be some build or dependency problem occurred.
block option is mostly only an optimization of build power => do not build something if you know you will need to rebuild it soon (at least in default (transitive) rebuild strategy).
I can not imagine what kind of the scenario will cause the problem.
I will be appreciate if someone can describe the reason or can provide some material for that.
It is a little bit documented here:
http://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.build_s cheduling_and_dispatching.htm
Thanks Jidiablo
Hope that helps, Peter -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org