[PATCH] dispatch: treat SIGPIPE as a termination signal (BC)

Simon Farnsworth simonfar at fb.com
Wed Feb 8 10:28:40 EST 2017


Please scrub this - it breaks `hg serve`. I'll send a v2 shortly, that 
moves the SIGPIPE handling into pager and thus has no BC implications.

On 07/02/2017 20:08, Simon Farnsworth wrote:
> # HG changeset patch
> # User Simon Farnsworth <simonfar at fb.com>
> # Date 1486498104 28800
> #      Tue Feb 07 12:08:24 2017 -0800
> # Node ID e1150763706818fffa62c81a72a88574d20caea1
> # Parent  1f51b4658f21bbb797e922d155c1046eddccf91d
> dispatch: treat SIGPIPE as a termination signal (BC)
>
> pager previously set SIGPIPE to immediately exit the process, ignoring any
> Python @atexit handlers, exception handling etc - just instant termination.
>
> Simply removing this as per changeset aaa751585325 meant that when you
> aborted a long running pager command, Mercurial would not quit; instead, we
> should add SIGPIPE to the list of termination signals in dispatch.py.
>
> This is a slight BC break, as previously, a process that was piping data
> into or out of Mercurial would not kill Mercurial if it died before closing
> its end of the pipe, whereas it will now cause Mercurial to exit.
>
> diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
> --- a/mercurial/dispatch.py
> +++ b/mercurial/dispatch.py
> @@ -147,7 +147,7 @@
>
>      ui = req.ui
>      try:
> -        for name in 'SIGBREAK', 'SIGHUP', 'SIGTERM':
> +        for name in 'SIGBREAK', 'SIGHUP', 'SIGTERM', 'SIGPIPE':
>              num = getattr(signal, name, None)
>              if num:
>                  signal.signal(num, catchterm)
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.mercurial-2Dscm.org_mailman_listinfo_mercurial-2Ddevel&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=mEgSWILcY4c4W3zjApBQLA&m=I0DTIf8TaBNbZo11b6eM-M9WIaAj0Va9TR_a9fvAsvk&s=629TWBre1WtsIXDvJQh3UKr9baaDbd6LlVXnmQeyP5E&e=
>

-- 
Simon Farnsworth


More information about the Mercurial-devel mailing list