From b2a389ad5111d587db3f95c6ce13fc2eafc22f27 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 6 Jan 2020 10:08:46 +0000 Subject: sstate: Avoid races over rewritten siginfo files Try and avoid errors like: Exception: bb.process.ExecutionError: Execution of 'build/tmp/work/x86_64-linux/libxslt-native/1.1.34-r0/temp/run.sstate_unpack_package.12343' failed with exit code 1: touch: setting times of 'build/sstate_devtool/80/4d/sstate:libxslt-native::1.1.34:r0::3:804d33f3f8d032b01ae92207669dd0a8f95a84917d563d122a77df19e786d73c_populate_lic.tgz.siginfo': Stale file handle WARNING: exit code 1 from a shell command. by not overwriting existing files. Signed-off-by: Richard Purdie --- meta/classes/sstate.bbclass | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'meta/classes/sstate.bbclass') diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 241dace6d9..356fe7ec18 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -686,7 +686,11 @@ def sstate_package(ss, d): bb.build.exec_func(f, d, (sstatebuild,)) # SSTATE_PKG may have been changed by sstate_report_unihash - bb.siggen.dump_this_task(d.getVar('SSTATE_PKG') + ".siginfo", d) + siginfo = d.getVar('SSTATE_PKG') + ".siginfo" + if not os.path.exists(siginfo): + bb.siggen.dump_this_task(siginfo, d) + else: + os.utime(siginfo, None) return @@ -1110,8 +1114,11 @@ python sstate_eventhandler() { d.setVar("SSTATE_PKGSPEC", "${SSTATE_SWSPEC}") d.setVar("SSTATE_EXTRAPATH", "") d.setVar("SSTATE_CURRTASK", taskname) - sstatepkg = d.getVar('SSTATE_PKG') - bb.siggen.dump_this_task(sstatepkg + ".siginfo", d) + siginfo = d.getVar('SSTATE_PKG') + ".siginfo" + if not os.path.exists(siginfo): + bb.siggen.dump_this_task(siginfo, d) + else: + os.utime(siginfo, None) } SSTATE_PRUNE_OBSOLETEWORKDIR ?= "1" -- cgit 1.2.3-korg