kumquat-buildroot/support/scripts
Romain Naour e79018544d support/scripts/boot-qemu-image.py: wait before using expect
As reported by a gitlab runtime test [1] and on the mailing list
[2], some runtime tests are failing on slow host machines when
the qemu-system-<arch> is missing on the host.

The boot-qemu-image.py script need to wait some time after
calling pexpect.spawn() in order to make sure that the qemu
process has been executed in start-qemu.sh.

If start-qemu.sh failed due to missing qemu-system binary
an exception will be thrown by child.expect() and should be
catched by the error handling (pexpect.EOF).

After spending a lot of time to investigate with Yann E. MORIN
[3]. It seems that short-lived child processes are a corner-case
that is not very correctly handled...

Without adding a sleep(1), child.expect() can trigger an
exception before setting the exitstatus of the spawned
process. This issue can be reproduced on a gitlab runner or
by adding "exit 1" in the first line of start-qemu.sh
(after the shebang).

There is even the same workaround in some pexpect examples [4].

Thanks to Yann for the help while investigating the issue.

Tested:
https://gitlab.com/kubu93/buildroot/pipelines/138472925

[1] https://gitlab.com/kubu93/buildroot/pipelines/135487475
[2] http://lists.busybox.net/pipermail/buildroot/2020-April/280037.html
[3] http://patchwork.ozlabs.org/project/buildroot/patch/20200418161023.1221799-1-romain.naour@gmail.com/
[4] https://github.com/pexpect/pexpect/blob/master/examples/ssh_tunnel.py#L80

Fixes:
https://gitlab.com/kubu93/buildroot/-/jobs/509053135

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
[yann.morin.1998@free.fr: reorder imports]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2020-04-22 22:04:47 +02:00
..
apply-patches.sh support/scripts/apply-patches.sh: do not apply patches with renames 2017-09-19 22:51:25 +02:00
boot-qemu-image.py support/scripts/boot-qemu-image.py: wait before using expect 2020-04-22 22:04:47 +02:00
br2-external core: allow br2-external trees to provide opensl 2019-08-04 00:13:37 +02:00
brpkgutil.py support/scripts: use show-info to extract dependency graph 2019-05-07 23:03:41 +02:00
check-bin-arch support/scripts/check-bin-arch: ignore /usr/lib/grub 2019-05-20 22:33:14 +02:00
check-host-rpath core: implement per-package SDK and target 2019-11-29 14:24:05 +01:00
check-kernel-headers.sh support/scripts/check-kernel-headers.sh: do not print error for loose checks 2020-03-21 15:47:03 +01:00
check-merged-usr.sh skeleton-custom: use a script to check merged usr structure 2019-02-06 17:03:30 +01:00
eclipse-register-toolchain eclipse-register-toolchain: toolchain is no longer installed in $(HOST_DIR)/usr 2017-07-05 16:06:27 +02:00
expunge-gconv-modules
fix-configure-powerpc64.sh support/scripts: fix shebang with bash 2017-06-08 21:43:05 +02:00
fix-rpath package/pkg-generic.mk, support/scripts/fix-rpath: fix per-package regexp 2019-12-12 08:27:54 +01:00
generate-gitlab-ci-yml .gitlab-ci.yml: use "extends" keyword 2019-02-06 11:40:28 +01:00
genimage.sh support/scripts/genimage.sh: pass an empty rootpath to genimage 2019-10-27 12:19:32 +01:00
graph-build-time support/scripts/graph-build-time: replace confusing colors 2019-02-04 15:23:27 +01:00
graph-depends support/scripts/graph-depends: cut on host-ccache 2019-10-02 21:07:14 +02:00
hardlink-or-copy support/scripts: fix shebang with bash 2017-06-08 21:43:05 +02:00
mkmakefile support/scripts/mkmakefile: make wrapper silent by default 2018-11-02 21:23:02 +01:00
mkusers support/scripts/mkusers: preserve group members 2018-09-12 21:22:25 +02:00
pkg-stats support/scripts/pkg-stats: add tilde '~' expansion for pathes 2020-04-12 14:49:45 +02:00
pycompile.py pycompile: fix code style 2018-01-29 23:14:24 +01:00
setlocalversion support/scripts/setlocalversion: ignore user settings for Mercurial 2019-02-04 21:25:33 +01:00
size-stats support/graph-size: reorder colours assigned to sizes 2019-08-26 22:51:47 +02:00