Re: [PATCH] builtin/credential-cache--daemon: fix error when "exit"ing on Cygwin
- From
Jeff King <peff@peff.net>
- Date
- Oct 16, 2024, 15:09 UTC
- Message-ID
- <20241016150922.GA1848210@coredump.intra.peff.net>
- In-Reply-To
- <20241016145539.GA703747@coredump.intra.peff.net>
On Wed, Oct 16, 2024 at 10:55:40AM -0400, Jeff King wrote:
Show 22 quoted lines
> > 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@ramsayjones.plus.com/
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