Jeff King <peff@xxxxxxxx> writes: > Hmm, that is interesting. I thought it would work OK because we don't > rely on any process-id magic for finding the daemon, etc, and instead > talk over pipe descriptors. But that proves to be our undoing. Yup. I also do suspect that closing all excess fds in the git process in the middle may not be a bad idea, but we may not know what the upper bound is. > Perhaps git.c should be closing all descriptors after spawning the > child. Of course that gets weird if it wants to write an error to stderr > about spawning the child. I dunno. It seems as likely to introduce > problems as solve them, so if nothing is broken beyond this cache-daemon > thing, I'd just as soon leave it. We do employ the "open extra pipe that is set to close-on-exec so that child that failed to exec can report back" trick, but in order to report the failure back, the standard error of the process in the middle may have to be kept open, so let's not disturb this sleeping dragon ;-)