Subject: Re: [PATCH 1/2] commit-graph.c: remove temporary graph layers on exit

From: Junio C Hamano <[email-masked]>
Date: Fri, 07 Jun 2024 14:47:58 -0700

Taylor Blau <[email-masked]> writes:

>> > -		result = rename(ctx->graph_name, final_graph_name);
>> > +		result = rename_tempfile(&graph_layer, final_graph_name);
>>
>> Before this rename, after the close(fd) we saw in the previous hunk,
>> there is one early error return when we fail to rename the base
>> graph file.  Do we need to do anything there, or an unfinished
>> tempfile getting removed at the process termination is sufficient
>> for cleaning up the mess?
>
> We could explicitly clean it up, but we'll do so implicitly upon exit,
> so I think it's fine to leave it as-is.

I am not worried about cleaning it up.  Upon exit, the underlying
file descriptor will be closed, but this new code never does
fclose() on the FILE* that has a buffer around the underlying file
descriptor.  How are we guaranteeing that we are not losing anything
buffered but not flushed yet?