Re: [PATCH v1 1/2] entry.c: update cache entry only for existing files
- Date: Thu, 5 Oct 2017 07:12:49 -0400
- From: Jeff King <peff@xxxxxxxx>
- Subject: Re: [PATCH v1 1/2] entry.c: update cache entry only for existing files
On Thu, Oct 05, 2017 at 12:44:06PM +0200, lars.schneider@xxxxxxxxxxxx wrote:
> From: Lars Schneider <larsxschneider@xxxxxxxxx>
> In 2841e8f ("convert: add "status=delayed" to filter process protocol",
> 2017-06-30) we taught the filter process protocol to delay responses.
> That means an external filter might answer in the first write_entry()
> call on a file that requires filtering "I got your request, but I
> can't answer right now. Ask again later!". As Git got no answer, we do
> not write anything to the filesystem. Consequently, the lstat() call in
> the finish block of the function writes garbage to the cache entry.
> The garbage is eventually overwritten when the filter answers with
> the final file content in a subsequent write_entry() call.
> Fix the brief time window of garbage in the cache entry by adding a
> special finish block that does nothing for delayed responses. The cache
> entry is written properly in a subsequent write_entry() call where
> the filter responds with the final file content.
Nicely explained and the patch looks correct. I also verified that MSan
is happy with t0021 after this.
Thanks for the quick turnaround.