git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] run-command.c: ensure signaled hook scripts are waited upon
@ 2020-02-21  6:06 Anthony Sottile
  2020-02-21  6:39 ` Jeff King
  0 siblings, 1 reply; 3+ messages in thread
From: Anthony Sottile @ 2020-02-21  6:06 UTC (permalink / raw)
  To: git; +Cc: Anthony Sottile

In the event of a `^C` while hook scripts are running, ensure that the
hook processes are cleaned up and do not become zombies.  This also ensures
that upon `^C` execution is not handed back to the terminal until the
processes have been waited upon.

Signed-off-by: Anthony Sottile <asottile@umich.edu>
---
 run-command.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/run-command.c b/run-command.c
index f5e1149..75d3b73 100644
--- a/run-command.c
+++ b/run-command.c
@@ -1358,6 +1358,8 @@ int run_hook_ve(const char *const *env, const char *name, va_list args)
 	hook.no_stdin = 1;
 	hook.stdout_to_stderr = 1;
 	hook.trace2_hook_name = name;
+	hook.clean_on_exit = 1;
+	hook.wait_after_clean = 1;
 
 	return run_command(&hook);
 }
-- 
2.25.GIT


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] run-command.c: ensure signaled hook scripts are waited upon
  2020-02-21  6:06 [PATCH] run-command.c: ensure signaled hook scripts are waited upon Anthony Sottile
@ 2020-02-21  6:39 ` Jeff King
  2020-02-22 17:12   ` Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: Jeff King @ 2020-02-21  6:39 UTC (permalink / raw)
  To: Anthony Sottile; +Cc: git

On Thu, Feb 20, 2020 at 10:06:36PM -0800, Anthony Sottile wrote:

> In the event of a `^C` while hook scripts are running, ensure that the
> hook processes are cleaned up and do not become zombies.  This also ensures
> that upon `^C` execution is not handed back to the terminal until the
> processes have been waited upon.

If we assume that most people would prefer this "wait until the hook has
died" behavior, I think this shouldn't have any unwanted secondary
effects. I'm on the fence on whether it's what most people would want or
not (I guess most people don't care either way, because their scripts
don't ignore SIGINT).

(Earlier in the thread, we discussed possibly swapping the order of the
cleanup code and dropping the signal handler, which could have more
unexpected effects, but that part isn't in this patch).

-Peff

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] run-command.c: ensure signaled hook scripts are waited upon
  2020-02-21  6:39 ` Jeff King
@ 2020-02-22 17:12   ` Junio C Hamano
  0 siblings, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2020-02-22 17:12 UTC (permalink / raw)
  To: Jeff King; +Cc: Anthony Sottile, git

Jeff King <peff@peff.net> writes:

> If we assume that most people would prefer this "wait until the hook has
> died" behavior, I think this shouldn't have any unwanted secondary
> effects. I'm on the fence on whether it's what most people would want or
> not (I guess most people don't care either way, because their scripts
> don't ignore SIGINT).

Yeah, and imagining why they deliberately ignore INT (i.e. "because
I want this hook not be interrupted and run to its completion") does
not help guess if they want git to wait for hook's completion or
just go ahead and die of its own signal death.  We could timeout the
waiting and kill such a child forcibly, and that may avoid these
hook script that ignore INT to hang around, but I do not know if
that is desirable.



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-02-22 17:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-21  6:06 [PATCH] run-command.c: ensure signaled hook scripts are waited upon Anthony Sottile
2020-02-21  6:39 ` Jeff King
2020-02-22 17:12   ` Junio C Hamano

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).