lstat and NFS server not responding
On Tue, 3 Apr 2001, Friedrich Leisch wrote:
On Tue, 3 Apr 2001 07:06:47 +0100 (BST), Prof Brian D Ripley (PBDR) wrote:
> On Mon, 2 Apr 2001, Paul Gilbert wrote:
>> In a somewhat unusual circumstance I have been having trouble when >> making R from source and with "R CMD build dse" >> forcing the machine to look for an NFS server which was not available, >> and then stalling. Our system administrator traced this back to the fact >> that these go through all the directories back to "/" , doing an lstat >> on everything. He suggests that that seems odd, but it doesn't take long >> normally. The problem was apparently caused by the fact that something >> (possible a cdrom) on /mnt had not been unmounted properly. >> >> We have fixed the problem but since it was rather difficult to track >> down I thought I would point it out in case others experience a similar >> difficulty. Also, is there a good explanation for doing an lstat on >> everything up to /?
> Do you know what was doing it? Since R CMD build is basically a Perl > program, I can only guess that Perl was doing this, and it looks like a > Perl quirk/bug that perhaps you need to track down and report (if your Perl > version is current). One thing I did notice is that the R scripts use > Cwd::getcwd in Perl when the manual page recommends Cwd::cwd, and reading > the code suggests Cwd::getcwd is the culprit. (Any explanation, > Fritz/Kurt?)
No particular reason ... the only one is that I've always used getcwd (and didn't even know that cwd exists). My manpage says ``It is recommended that cwd (or another *cwd() function) is used in all code ...'' which I wouldn't take as a particulartly strong recommendation for cvw, but I'd be fine.
The code says (5.6.0)
# The 'natural and safe form' for UNIX (pwd may be setuid root)
sub _backtick_pwd {
my $cwd;
chop($cwd = `pwd`);
$cwd;
}
# Since some ports may predefine cwd internally (e.g., NT)
# we take care not to override an existing definition for cwd().
*cwd = \&_backtick_pwd unless defined &cwd;
which looks like a recommendation for cwd to me.
Paul, could you try if that fixes your problem (i.e., replace all occurrences of ``getcwd'' by ``Cwd::cwd'' in the build script and run it again)?
(just cwd seems to work.)
Brian D. Ripley, ripley@stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272860 (secr) Oxford OX1 3TG, UK Fax: +44 1865 272595 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._