On Wed, Nov 25, 2020 at 01:42:24PM -0800, Junio C Hamano wrote: > In the meantime, I may queue this on 'seen' but it cannot move > forward without a signoff. > > Thanks. > > --- >8 ------ >8 ------ >8 ------ >8 ------ >8 --- > From: René Scharfe <l.s.r@xxxxxx> > Date: Fri, 20 Nov 2020 19:52:45 +0100 > Subject: [PATCH] upload-pack: kill pack-objects helper on signal or exit > > We spawn an external pack-objects process to actually send objects > to the remote side. If we are killed by a signal during this > process, the pack-objects will hang around as a zombie. We should > take it down when we go down. I think this is a good thing to do. I'd probably avoid the word "zombie" here, though. The orphaned pack-objects does not become a zombie process in the traditional Unix sense of the word, waiting to be reaped by a parent which is not paying attention. Instead it is still running but doing work for a caller that will never read the result. So maybe: We spawn an external pack-objects process to actually send objects to the remote side. If we are killed by a signal during this process, then pack-objects may continue to run. As soon as it starts producing output for the pack, it will see a failure writing to upload-pack and exit itself. But before then, it may do significant work traversing the object graph, compressing deltas, etc, which will all be pointless. So let's make sure to kill as soon as we know that the caller will not read the result. -Peff