https://bz.mercurial-scm.org/show_bug.cgi?id=5452

            Bug ID: 5452
           Summary: "Interrupted system call" with sshpeer.py when
                    resizing terminal
           Product: Mercurial
           Version: 4.0.1
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: Mercurial
          Assignee: bugzi...@mercurial-scm.org
          Reporter: ar...@tunes.org
                CC: mercurial-de...@selenic.com

Running Mercurial across ssh, at least on Linux: when it is waiting for more
data (sshpeer.py:84, "act = util.poll(fds)"), if the terminal window is
resized, then the select call is interrupted with "select.error: (4,
'Interrupted system call')".  The problem is that the error propagates and
crashes the whole mercurial run with a standard traceback.  Instead it should
be caught and ignored.

The problem can be reproduced by running "hg pull ssh://..." or "hg push
ssh://..." and resizing the terminal window while the operation is in progress.
 I guess that the same problem would occur by sending other Posix signals to
the application, but signals are rare nowadays.  I think that resizing the
terminal window sends SIGWINCH to the process, which is normally ignored, but
still interrupts some system calls like select().

It doesn't seem to occur for https:// connections.  I guess they are handled
differently.

Ran with Python 2.7.12 on Arch Linux.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to