rawhide report: 20081006 changes

Michael Schwendt mschwendt at gmail.com
Wed Oct 8 18:31:30 UTC 2008


On Wed, 08 Oct 2008 12:44:35 -0400, James Antill wrote:

[race in mash+createrepo]

> 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 :).

Looks good. It's the most you can do in createrepo without adding locks.
A small penalty remains, because the same checksum may be generated more
than once in a race-condition. Neglectable IMO.




More information about the fedora-devel-list mailing list