Subject: Stopped (tty output)
To: None <current-users@NetBSD.ORG>
From: Alan Barrett <apb@iafrica.com>
List: current-users
Date: 06/11/1998 15:37:12
NetBSD/i386 -current as of a week or two ago.
rsync-1.6.9 from pkgsrc/net/rsync.
ssh-1.2.23 from pkgsrc/security/ssh.

When I run a command like

	rsync --rsh ssh -a user@host:/sourcedir /destdir

from the shell, it works fine.  ssh is set up to prompt for a password,
which it does, and rsync proceeds to synchronise the local and remote
directories.

But if I run exactly the same command from make, it fails when ssh
gets to the password prompt.  I see this:

	bash> make
	rsync --rsh ssh -a user@host:/sourcedir /destdir
	user@host's password: Stopped (tty output)
	
	Received signal 30.
	*** Error code 150

	Stop.
	bash>

I have tried putting the rsync command in a file, and running the file
with "sh filename".  Almost the same problem as when running the command
from make; now I see:

	bash> cat t
	rsync --rsh ssh -a user@host:/sourcedir /destdir
	bash> /bin/sh ./t
	user@host's password: Stopped (tty output)
	You have stopped jobs.

	Received signal 30.
	bash>

I tried using "rsync --rsh 'my-script-that-does-stuff'", and had my script
do "stty -a </dev/tty" with output to a file in /tmp, then echo a prompt
and read something.  The stty output from inside the script is identical to
that from the shell prompt, so if rsync is doing weird things to the tty
I can't see what.  Strangely, my script gets "Stopped (tty input)"
instead of "Stopped (tty output)".  This is what I see:

	bash> cat tt
	rsync --rsh ./myscript -a user@host:/sourcedir /destdir
	bash> cat myscript
	#!/bin/sh
	stty -a </dev/tty >/tmp/mylog
	echo prompt
	read foo
	exit 1
	bash> /bin/sh ./tt
	prompt
	Stopped (tty input)
	You have stopped jobs.
	bash> stty -a </dev/tty | diff - /tmp/mylog
	[no differences]
	bash>

Where should I look to fix this?  (I have tried using /bin/sh instead of
bash: same problem either way.) 

--apb (Alan Barrett)