home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.protocols.nfs
- Path: sparky!uunet!utcsri!torn!maccs!beame
- From: beame@maccs.dcss.mcmaster.ca (Carl Beame)
- Subject: Re: Apparent bug with DOS 5 XCOPY.EXE and PC-NFS
- Message-ID: <1992Nov6.042708.27898@maccs.dcss.mcmaster.ca>
- Keywords: xcopy dos nfs
- Organization: McMaster University, Hamilton, Ontario, Canada.
- References: <8580@lee.SEAS.UCLA.EDU> <1992Nov5.045412.20596@kirk.bu.oz.au>
- Date: Fri, 6 Nov 1992 04:27:08 GMT
- Lines: 44
-
- In article <1992Nov5.045412.20596@kirk.bu.oz.au> bambi@bu.oz.au (David J. Hughes) writes:
- >roff@felon.icsl.ucla.edu (David Roff) writes:
- >
- >>We've discovered an apparent bug involving the interaction of DOS 5.0's
- >>XCOPY command and PC-NFS. When running a batch file containing several
- >>XCOPY statements in succession, copying files from a local hard disk to
- >>a network drive, DOS will occasionally report it can't find selected files.
- >>Issuing the same XCOPY statements via command line, however, works fine.
- >>Moreover, using COPY instead also works. Is this a well known bug? Any
- >>fixes?
- >
- >If you are using XCOPY to do large recursive copies then you will often
- >run into problems (not sure if this is the case as the original posting
- >doesn't contain many details). The cause of this is the redirector used
- >to access a remote volume often runs out of internal buffers if the
- >recursion is too deep.
- >
-
- Basically, the problem has to due with the DOS Findfirst/Findnext
- functions and their mapping to NFS calls. The firstfirst function returns
- to the users a structure which contains the filename and 21 bytes of
- reserved data which define where a findnext will start in the directory
- search. The findnext can be called at ANY point in the future (immediatly
- or maybe in an hour or so ... :-) ). To perform a "findnext", the NFS client
- must pass to the NFS server, a 32 byte directory handle and a 4 byte "cookie"
- as well as have stored the filename matching information passed in the findfirst
- call. This information does not fit the 21 byte DOS reserved area and
- therefore the client NFS must allocate an internal buffer to place this
- information and put a pointer to it in the 21 byte DOS structure.
-
- An XCOPY will usually have 1 outstanding findnext for every level
- of directory. Under DOS 5.0 there can be 32 directory levels. In our
- NFS (BWNFS) several versions ago, we HAD a problem which a program which
- used the C stat() call on all files. The stat() call uses Findfirst with out
- any findnexts.
-
- After all this, I don't think this is the problem with copying files
- from the PC to the server as XCOPY does many findfirst/findnext on the
- destination of the copy. The finds are done on the source.
-
- Carl Beame
- Beame & Whiteside Software
- tech@bws.com
-
-