uber: a 'file exists?' check followed by create file is never concurrency safe