tty settings with rsync -e ssh interrupt

jw schultz jw at pegasys.ws
Sat Feb 8 06:14:04 EST 2003


On Fri, Feb 07, 2003 at 02:07:04PM -0500, Hardy Merrill wrote:
> jw schultz [jw at pegasys.ws] wrote:
> > On Thu, Feb 06, 2003 at 04:19:36PM -0500, Hardy Merrill wrote:
> > > jw schultz [jw at pegasys.ws] wrote:
> > > > On Thu, Feb 06, 2003 at 03:46:11PM -0500, Hardy Merrill wrote:
> > > > > I'm following up on a bug reported back in May 2002:
> > > > > 
> > > > >   https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=64689
> > > > > 
> > > > > this bug was also reported to the rsync mailing list:
> > > > > 
> > > > >   http://www.mail-archive.com/rsync@lists.samba.org/mail5.html#04250
> > > > > 
> > > > > I couldn't find any discussion other than the reporters post
> > > > > describing the problem.
> > > > > 
> > > > > Anyway, I just downloaded the new rsync-2.5.6 source, installed
> > > > > it, and found that the bug still exists.  This problem shows
> > > > > itself when using "-e ssh", and Ctrl-C'ing at the ssh password
> > > > > prompt - the terminal gets screwed up.
> > > > > 
> > > > > Anyone have any insight on this?
> > > > > 
> > > > > Thanks.
> > > > > 
> > > > > -- 
> > > > > Hardy Merrill
> > > > > Senior Software Engineer
> > > > > Red Hat, Inc.
> > > > 
> > > > Blame ssh.  It is failing to restore the tty settings.
> > > 
> > > Please excuse my naivete - I'm a relative newbie to rsync - how
> > > come when you run ssh by itself and Ctrl-C at the password
> > > prompt, your terminal is fine?  Why is it only affected when
> > > run with -e from rsync?
> > 
> > Sorry. Don't blame ssh.  Rsync is messing things up.
> > 
> > I've attached a cleaned up strace output.
> > 
> > What is happening is that both rsync and ssh get the SIGINT.
> > Unfortunately, before ssh has had a sufficient chance to
> > process the SIGINT rsync sends it a SIGUSR1 as part of
> > cleanup.  ssh doesn't catch SIGUSR1 so it just exits.
> > 
> > This is the first i've looked at this part of rsync so i'd
> > be cautious about changing any of the timings.  However, it
> > does seem to me that a more correct behavior on receiving a
> > SIGINT would be to forward that to the children and give
> > them a chance to clean up before sending any more signals.
> 
> Where does this go from here?  Will a solution to this problem
> be persued?

I don't know.  I don't consider it worth my time.  Perhaps
someone else will.  What i don't want to see is things
destablized fixing such a insignificant bug.

Perhaps the reason i consider this such an insignificant bug
is that i've experienced this sort of terminal-mode error so
many times over the years due to things like editors crashing
and other stuff.  There are several ways to work around
this.  I usually just type "<CR>stty sane<CR>".

Frankly, ssh could still be considered to be faulty.  If it
gets any catchable signal while in -echo mode it should
reset the terminal prior to exiting.


More information about the rsync mailing list