Jeffrey Hutzelman <[EMAIL PROTECTED]> writes:
> Date: Fri, 21 Jul 2000 14:14:26 -0400
> From: Jeffrey Hutzelman <[EMAIL PROTECTED]>
> To: Jeff Blaine <[EMAIL PROTECTED]>, Lyle Seaman <[EMAIL PROTECTED]>
> cc: [EMAIL PROTECTED], [EMAIL PROTECTED]
> Subject: Re: 103 character full pathname fails?
>
> [I'm mailing relevant people directly in addition to copying the list,
> since otherwise it will be September before anyone sees my comments. Grrr.]
>
>
> On 07/21/00 13:34:12 -0400 Jeff Blaine <[EMAIL PROTECTED]> wrote:
>
> > 'touch 84794578943985349' returns the following with truss (Solaris):
> >
> > stat64("84794578943985349", 0xFFBEF830) Err#2 ENOENT
> > creat64("84794578943985349", 0666) Err#27 EFBIG
> > touchwrite(2, " t o u c h", 5) = 5
> > : write(2, " : ", 2) = 2
> > 84794578943985349write(2, " 8 4 7 9 4 5 7 8 9 4 3 9".., 17) = 17
> > cannot create
> > write(2, " c a n n o t c r e a".., 15) = 15
> > llseek(0, 0, SEEK_CUR) = 8208
> > _exit(1)
> >
> > EFBIG is 'File too large' in /usr/include/sys/errno.h
> >
> > Same error code with strace under Red Hat 6.2
>
> In many cases, the error codes you get from operations on AFS files must be
> interpreted based on the fileserver platform. What platform is the
> fileserver in question, and what is errno 27 on that platform?
>
>
> -- Jeffrey T. Hutzelman (N3NHS) <[EMAIL PROTECTED]>
> Sr. Research Systems Programmer
> School of Computer Science - Research Computing Facility
> Carnegie Mellon University - Pittsburgh, PA
>
>
>
The problem is not with large filenames. I can do this:
touch
84794578943985349847945789439853498479457894398534984794578943985349847945789439853498479457894398534984794578943985349
with no problems. (That's a 119 character filename.) 'Course, I may not have
the same version of solaris as you, and I almost certainly used a different version
of AFS.
Since you've only included output from "truss", it's difficult to say if
this is a problem with the cache manager or file server. You might find
it worthwhile to find a version of "tcpdump" that decodes fileserver RX
packets and use that, or failing that, decode the packets by hand.
Before doing this, you should try varying the circumstances of the error
to determine when it does and does not happen. It may be dependent
on the fileserver version#, the client version#, or could very likely
be due to some problem with a particular directory or volume, and not
true at large. Random stupid questions: just how many files do you already
have in that directory? Also, what is the output from "csh -c limit",
specially RLIMIT_FSIZE? Are you using an NFS/AFS translator?
The cache manager appears to be willing to return EFBIG if:
random read/write problems in the NFS file translator
memory write: if rlimit[RLIMIT_FSIZE] is exceeded.
readdir: if file size or request size exceeds 2 GB.
(anything that makes a directory entry) if the directory is "full".
(Sorry, I don't know how many blobs can fit in a directory.)
-Marcus Watts
UM ITD PD&D Umich Systems Group