On Mon, 2008-10-06 at 11:41 -0700, Jesse Keating wrote: > On Mon, 2008-10-06 at 20:33 +0200, Michael Schwendt wrote: > > On Mon, 06 Oct 2008 10:19:46 -0700, Jesse Keating wrote: > > > > > The yum folks are still looking into it. The really bizarre thing is > > > that there is no problem with the package itself, in fact it's seen in > > > other arches, and in those other arch directories it's a hardlink back > > > to the actual file somewhere else on the filesystem. That's the way it > > > is for each of those arch trees. It's a real headscratcher of a > > > problem. > > > > Unless I'm misreading the code, it's a race-condition. mash creates the > > metadata for all architectures in parallel. One process per arch. The > > createrepo checksum cache file I/O [1] is not protected against concurrent > > access. With odd timing, it can happen that one process reads an empty > > checksum file that has just been opened for writing by another process. > > Give it a try. Add a safety check after reading a checksum file. > > > > That tickles a part of my brain, I think I speculated that this was the > problem while in the shower or something, and then completely forgot to > pursue it once I got ready to work. It is a possibility. This should fix it: http://koji.fedoraproject.org/koji/taskinfo?taskID=868762 ...the patch being basically: - csumo = open(csumfile, 'w') + + # This is atomic cache creation via. rename, so we can have two + # tasks using the same cachedir ... mash does this. + csumo = tempfile.NamedTemporaryFile(mode='w', dir=self.crp_cachedir csumo.write(checksum) csumo.close() + os.rename(csumo.name, csumfile) ...it'll get upstream as soon as I can push :). -- James Antill <james@xxxxxxxxxxxxxxxxx> Fedora -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list