[an error occurred while processing this directive]

My remote ufsdump is failing with a "Protocol botched" message. What do I do?


The problem produces output like the following:

DUMP: Date of this level 0 dump: Wed Jan 6 08:50:01 1993
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rsd0a (/) to /dev/nrst8 on host foo
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 8232 blocks (4.02MB) on 0.00 tape(s).
DUMP: Protocol to remote tape server botched (in rmtgets).
rdump: Lost connection to remote host.
DUMP: Bad return code from dump: 1

This occurs when something in .cshrc on the remote machine prints something
to stdout or stderr (eg. stty, echo). The remote ufsdump command doesn't
expect this, and chokes. Other commands which use the rsh protocol (eg.
rdist, rtar) may also be affected.

The way to get around this is to add the following line near the
beginning of .cshrc, before any command that might send something
to stdout or stderr:

if ( ! $?prompt ) exit

This causes .cshrc to exit when prompt isn't set, which distinguishes
between remote commands (eg. rdump, rsh) where these variables are not
set, and interactive sessions (eg. rlogin) where they are.

[an error occurred while processing this directive]