diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-01-06 10:08:46 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-01-06 23:54:39 +0000 |
commit | 3b3ef106a29296fecf888e573787281a193c6b6f (patch) | |
tree | 75d5b9341a77cbec9310925ca93e08759408a91b | |
parent | 1a401e1c660bc16207d80e984bb05ba31ce2957c (diff) | |
download | poky-3b3ef106a29296fecf888e573787281a193c6b6f.tar.gz |
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.
(From OE-Core rev: b2a389ad5111d587db3f95c6ce13fc2eafc22f27)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/sstate.bbclass | 13 |
1 files changed, 10 insertions, 3 deletions
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): | |||
686 | bb.build.exec_func(f, d, (sstatebuild,)) | 686 | bb.build.exec_func(f, d, (sstatebuild,)) |
687 | 687 | ||
688 | # SSTATE_PKG may have been changed by sstate_report_unihash | 688 | # SSTATE_PKG may have been changed by sstate_report_unihash |
689 | bb.siggen.dump_this_task(d.getVar('SSTATE_PKG') + ".siginfo", d) | 689 | siginfo = d.getVar('SSTATE_PKG') + ".siginfo" |
690 | if not os.path.exists(siginfo): | ||
691 | bb.siggen.dump_this_task(siginfo, d) | ||
692 | else: | ||
693 | os.utime(siginfo, None) | ||
690 | 694 | ||
691 | return | 695 | return |
692 | 696 | ||
@@ -1110,8 +1114,11 @@ python sstate_eventhandler() { | |||
1110 | d.setVar("SSTATE_PKGSPEC", "${SSTATE_SWSPEC}") | 1114 | d.setVar("SSTATE_PKGSPEC", "${SSTATE_SWSPEC}") |
1111 | d.setVar("SSTATE_EXTRAPATH", "") | 1115 | d.setVar("SSTATE_EXTRAPATH", "") |
1112 | d.setVar("SSTATE_CURRTASK", taskname) | 1116 | d.setVar("SSTATE_CURRTASK", taskname) |
1113 | sstatepkg = d.getVar('SSTATE_PKG') | 1117 | siginfo = d.getVar('SSTATE_PKG') + ".siginfo" |
1114 | bb.siggen.dump_this_task(sstatepkg + ".siginfo", d) | 1118 | if not os.path.exists(siginfo): |
1119 | bb.siggen.dump_this_task(siginfo, d) | ||
1120 | else: | ||
1121 | os.utime(siginfo, None) | ||
1115 | } | 1122 | } |
1116 | 1123 | ||
1117 | SSTATE_PRUNE_OBSOLETEWORKDIR ?= "1" | 1124 | SSTATE_PRUNE_OBSOLETEWORKDIR ?= "1" |