makes sense, sounds like this is going to fix a bunch of nasty intermittent failures, thanks!
merged On 10/19/18 10:38 AM, Stefan Agner wrote: > From: Stefan Agner <[email protected]> > > When using sstate, two parallel builds can produce two packages > with the same mtime but different checksums. When later one of > those two builds fetches the others ipk, the package index does > not get udpated properly (since mtime matches). This ends up with > messages such as: > Downloading file:/../tmp/work/../image/...ipk. > Removing corrupt package file /../sysroot/../var/cache/opkg/volatile/...ipk > > However, in that case, ctime is different. Use ctime instead of > mtime to prevent failures like this. > > Suggested-by: Khem Raj <[email protected]> > Signed-off-by: Stefan Agner <[email protected]> > --- > This addresses the issue discussed here: > https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.openembedded.org_pipermail_openembedded-2Dcore_2018-2DOctober_156348.html&d=DwIBaQ&c=I_0YwoKy7z5LMTVdyO6YCiE2uzI1jjZZuIPelcSjixA&r=wNcrL2akRn6jfxhHaKavUrJB_C9JAMXtynjLd8ZzgXQ&m=Innit37H69hUyZPGuuhwO6R5CbUNNTfXQwxbqsEA2NE&s=oFvqASrFTgasDqZ901HeIBFSsf6Cn4FcBieOOBU4MdI&e= > > opkg-make-index | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/opkg-make-index b/opkg-make-index > index 3227fc0..db7bf64 100755 > --- a/opkg-make-index > +++ b/opkg-make-index > @@ -115,12 +115,12 @@ for abspath in files: > pkg = None > fnameStat = os.stat(abspath) > if filename in old_pkg_hash: > - if filename in pkgsStamps and int(fnameStat.st_mtime) == > pkgsStamps[filename]: > + if filename in pkgsStamps and int(fnameStat.st_ctime) == > pkgsStamps[filename]: > if (verbose): > sys.stderr.write("Found %s in Packages\n" % (filename,)) > pkg = old_pkg_hash[filename] > else: > - sys.stderr.write("Found %s in Packages, but mtime differs - > re-reading\n" % (filename,)) > + sys.stderr.write("Found %s in Packages, but ctime differs - > re-reading\n" % (filename,)) > > if not pkg: > if (verbose): > @@ -137,7 +137,7 @@ for abspath in files: > else: > old_filename = "" > s = packages.add_package(pkg, opt_a) > - pkgsStamps[filename] = fnameStat.st_mtime > + pkgsStamps[filename] = fnameStat.st_ctime > if s == 0: > if old_filename: > # old package was displaced by newer > -- Cheers, Alejandro -- _______________________________________________ yocto mailing list [email protected] https://lists.yoctoproject.org/listinfo/yocto
