On Wed, Oct 16, 2024 at 10:55:40AM -0400, Jeff King wrote: > > The logic is broken on Cygwin though: when a client asks the daemon to > > exit, they won't see the EOF and will instead get an error message: > > > > fatal: read error from cache daemon: Software caused connection abort > > > > This issue is known in Cygwin, see for example [1], but the exact root > > cause is not known. > > [...] > > [1]: https://github.com/cygporter/git/issues/51 > > I don't see any details at that issue, but I'm not sure how it would fix > things. From the client's perspective, they are going to see the > descriptor either way. Unless there is some magic that fclose() does > that a normal descriptor-close-on-exit does not do. > > That "Software caused connection abort" thing seems like a weird > not-standard-Unix errno value. Searching for it mostly yields people > complaining about getting it from ssh under cygwin. :) > > If the magic that cygwin needs is actually "fclose before unlink", then > that is in opposition to other platforms (and I suspect would make t0301 > racy there). This all seemed eerily familiar. Try this thread: https://lore.kernel.org/git/9dc3e85f-a532-6cff-de11-1dfb2e4bc6b6@xxxxxxxxxxxxxxxxxxxx/ It looks like the conclusion was that we should adjust errno handling on the client side, but nobody ever followed up with an actual patch. -Peff