Thread (7 messages) 7 messages, 3 authors, 2020-12-02

Re: Bug report: orphaned pack-objects after killing upload-pack on [

From: René Scharfe <hidden>
Date: 2020-11-26 20:05:33

Possibly related (same subject, not in this thread)

Am 26.11.20 um 02:04 schrieb Junio C Hamano:
Jeff King [off-list ref] writes:
quoted
On Wed, Nov 25, 2020 at 01:42:24PM -0800, Junio C Hamano wrote:
quoted
In the meantime, I may queue this on 'seen' but it cannot move
forward without a signoff.
 ...
  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.
Thanks, that reads well.
The patch is trivial, you don't need my sign-off.  You could record Peff
as its author, as he contributed the most to the version in seen.

Before I could submit that one (or something similar) formally, I'd need
to understand what's happening here a lot better and witness the effect
of the patch.

I understand that the main benefit of stopping the child upon
termination of the parent is to avoid using CPU cycles on a heavy task
whose results will just go to waste.  But wouldn't the orphaned child
then become a zombie?  Init would reap it eventually, but are there
perhaps init-less deployments (containerized daemon?) where such
zombies could pile up?

For a test, winning the race condition should be easy if we cheat by
letting the child loop forever.  But I struggle even with the most
basic task: Making upload-pack invoked by clone call pack-objects.
(Feeling a bit silly.)

René
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help