]> code.ossystems Code Review - openembedded-core.git/commit
adwaita-icon-theme: fix rare install race
authorRoss Burton <ross.burton@intel.com>
Fri, 13 Sep 2019 12:04:31 +0000 (13:04 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 16 Sep 2019 08:54:21 +0000 (09:54 +0100)
commitf969a8ff160390726565421d4c9b367e49172487
tree2b94ccebc3ec8cfc57b4ba9aa88dfa556d4518e5
parentd6ee3d3bdf183a9060b5b0c25b97688a4b9d40dc
adwaita-icon-theme: fix rare install race

There have been rare errors during the build of adwaita-icon-theme, such as:

Exception: bb.process.ExecutionError: Execution of '.../temp/run.sysroot_stage_all.45186' failed with exit code 2:
cpio: ./icons/Adwaita/32x32/legacy/_inst.34160_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.33428_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.35421_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.34533_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.35366_: Cannot stat: No such file or directory

The problem was that a previous optimisation (oe-core cd9af17028) to massively
increase the install speed (by parallelling the hundreds of installs) was subtly
wrong.  It was essentially doing this:

  for i in list; do
    install i &
  done
  wait

In pure shell this does parallelise the install commands and then wait for them
all to finish before exiting, but in Makefiles *each line in a separate shell*.  The actual Makefile is closer to this:

  for i in list; do \
    install i & \
  done
  wait

The backslashes are required to write a multi-line for loop in a Makefile, but
note that when the loop ends the shell exits and all of the install processes
that are still running are disowned.  The wait command then executes in a new
shell, and there are no childen to wait for.

The fix is trivial: add more backslashes so that the wait is part of the same
shell.

Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch