Re: NFS bug in 2.1.48

Claus-Justus Heine (Heine@physik.rwth-aachen.de)
16 Aug 1997 17:18:31 +0200


Systemkennung Linux <linux@mailhost.uni-koblenz.de> writes:

>
> > > #!/bin/bash
> > > cat >/tmp/xxx <<BUGGY
> > > asdf
> > > BUGGY
>
> [...]
>
> > Your little script, however, does NOT result in this error (talking
> > about 2.1.49). But there definitely is something wrong. What really
> > strikes me that both constructs don't fiddle with file descriptors
> > located on a NFS file system, only with pipes between processes. That
> > -ESTALE error _should_ be impossible.
>
> Here documents are placed in a file in $TMPDIR by the shell. They do
> not use pipes in any shell I know of.

Oh, sorry. Didn't know that. But then, what do you think of the
following little shell script:

#!/bin/sh
sh -s << _HERE_
ls -la $TMPDIR
exit
_HERE

If the Here document is placed in a file in $TMPDIR, then it should
show up in the output of `ls -la'. But it doesn't. I really don't
think that a decent shell implementation should create another file in
$TMPDIR for Here documents. And I'm pretty sure that at least bash
feds it to the standard input of the command using a pipe.

However, I didn't exmine the source code of bash or ksh or tcsh.
You may still be right, but I don't think so.

But all of the above doesn't touch the real problem: that bogus ESTALE
error (in the case of tclsh I _AM_ sure that no tmp file is created by
tclsh for reading the stderr of "exec some_command", tclsh uses pipes)

Cheers

Claus