From: Jeff Hostetler Date: Fri, 22 Mar 2019 14:20:02 GMT Subject: Re: [PATCH v2 1/1] trace2: write to directory targets Message-ID: In-Reply-To: On 3/21/2019 11:30 PM, Junio C Hamano wrote: > Jeff Hostetler writes: > >>>> + for (attempt_count = 0; attempt_count < MAX_RANDOM_ATTEMPTS; attempt_count++) { >>>> + strbuf_reset(&final_path); >>>> + strbuf_addbuf(&final_path, &base_path); >>>> + strbuf_addf(&final_path, ".%d", attempt_count); >> >> Since the last component of the SID is already very unique and >> we're unlikely to have collisions, maybe change the above line to: >> >> if (attempt_count > 0) >> strbuf_addf(&final_path, ".%d", attempt_count); >> >> and in reality expect to never have files with the suffix. > > That's a nice property. > >> Unless, that is, they turned on more than one of GIT_TR2, >> GIT_TR2_PERF, or GIT_TR2_EVENT and pointed them at the same >> directory, but I'm not sure if I care about that edge case >> or not. > > That actually makes me wonder if the auto generated filenames want > to have a common trait (e.g. suffix) that allows the readers to tell > from which of these environment variables the names came from. It > would not be very useful if two files with the same sid component > had .1 suffix for GIT_TR2 trace for one session, and the same .1 > suffix is used for GIT_TR2_PERF trace for a pair of files from > another session. I thought about suggesting that, but didn't think it worth the bother. > But let's not worry about it for now. If people do not want them > get mixed up and become hard to tell apart, they can always specify > different directories for different traces. agreed. it should be very rare. the SID is the built from "" so something would have to be seriously wrong with their system to get collision from 2 different git commands. and yes, they the advise should be to use different directories for the different streams. > >> >>>> + fd = open(final_path.buf, O_WRONLY | O_CREAT | O_EXCL, 0666); >> [...] >> >> Nice. Thanks for looking into this. >> Jeff