[PATCH v5 10/16] buildman: Detect binman reporting missing blobs

Peter Robinson pbrobinson at gmail.com
Tue Dec 6 00:13:03 CET 2022


On Thu, Nov 10, 2022 at 2:17 AM Simon Glass <sjg at chromium.org> wrote:
>
> Buildman should consider a build as a success (with warnings) if missing
> blobs have been dealt with by binman, even though buildman itself returns
> and error code overall. This is how other warnings are dealt with.
>
> We cannot easily access the 103 exit code, so detect the problem in the
> output.
>
> With this change, missing blobs result in an exit code of 101, although
> they still indicate failure.

So either this or Tom's change of "buildman: Add --allow-missing flag
to allow missing blobs" has broken rc3 builds for Allwinner boards on
Fedora. Tom's isn't a clean revert and I've not had time to test that
but either way the SCP firmware is optional and it works just fine,
ATM we don't have the SCP firmware available to Fedora builds.

Maybe that sort of of change to the build is expected but which ever
patch it is, and adding "BINMAN_ALLOW_MISSING=1" changes the error but
doesn't change the overall failure, I wouldn't expect this sort of
breakage so late in the cycle.

Do either of you know which one does the hard breakage here? I thought
I'd highlight it now because I don't have time over the next two weeks
to fully investigate the regression.

Peter

> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> (no changes since v1)
>
>  tools/buildman/builderthread.py | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py
> index 6240e08c767..065d836d68c 100644
> --- a/tools/buildman/builderthread.py
> +++ b/tools/buildman/builderthread.py
> @@ -288,10 +288,14 @@ class BuilderThread(threading.Thread):
>                          args.append('cfg')
>                      result = self.Make(commit, brd, 'build', cwd, *args,
>                              env=env)
> +                    if (result.return_code == 2 and
> +                        ('Some images are invalid' in result.stderr)):
> +                        # This is handled later by the check for output in
> +                        # stderr
> +                        result.return_code = 0
>                      if adjust_cfg:
>                          errs = cfgutil.check_cfg_file(cfg_file, adjust_cfg)
>                          if errs:
> -                            print('errs', errs)
>                              result.stderr += errs
>                              result.return_code = 1
>                  result.stderr = result.stderr.replace(src_dir + '/', '')
> --
> 2.38.1.431.g37b22c650d-goog
>


More information about the U-Boot mailing list