This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

chdir on remote win98


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

"cvs up -P" dies a horrible death when trying to update a hierachy where a
directory exists in the upstream repository, but contains no files so that
the directory has been pruned on the local checkout.  This happens only
when I access my local checkout on a Win98 machine via remote access
driven by XP (in other words, running the same command locally on the
Win98 has no problems, it is only the remote network access failing):

$ uname -a
CYGWIN_NT-5.1 LOUNGE 1.5.19(0.150/4/2) 2006-01-16 15:01 i686 Cygwin
$ cd win98/coreutils
$ cvs up -dP
M Makefile.in
cvs [update aborted]: could not chdir to config: Invalid request code

I traced this to the fact that cvs expects ENOENT, and chokes when chdir
returns EBADRQC instead.  A simple strace shows that cygwin1.dll could
probably be taught that a bad request return from a remote Win9x
filesystem during chdir() should be treated as the expected ENOENT:

$ strace bash -c 'cd ~/win98/coreutils/config'
...
   34  514661 [main] bash 2536 chdir: dir 'config'
   28  514689 [main] bash 2536 normalize_posix_path: src config
   29  514718 [main] bash 2536 cwdstuff::get: posix
/cygdrive/j/cygwin/home/eblake/coreutils
   29  514747 [main] bash 2536 cwdstuff::get:
(/cygdrive/j/cygwin/home/eblake/coreutils) = cwdstuff::get (0x22E610, 260,
1, 0), errno 54
  108  514855 [main] bash 2536 normalize_posix_path:
/cygdrive/j/cygwin/home/eblake/coreutils/config = normalize_posix_path
(config)
   33  514888 [main] bash 2536 mount_info::conv_to_win32_path:
conv_to_win32_path (/cygdrive/j/cygwin/home/eblake/coreutils/config)
   33  514921 [main] bash 2536 mount_info::cygdrive_win32_path: src
'/cygdrive/j/cygwin/home/eblake/coreutils/config', dst
'j:\cygwin\home\eblake\coreutils\config'
   29  514950 [main] bash 2536 set_flags: flags: binary (0x2)
   28  514978 [main] bash 2536 mount_info::conv_to_win32_path: src_path
/cygdrive/j/cygwin/home/eblake/coreutils/config, dst
j:\cygwin\home\eblake\coreutils\config, flags 0x2A, rc 0
 1539  516517 [main] bash 2536 symlink_info::check: GetFileAttributes
(j:\cygwin\home\eblake\coreutils\config) failed
  108  516625 [main] bash 2536 geterrno_from_win_error: windows error 2 ==
errno 2
 1388  518013 [main] bash 2536 symlink_info::check: GetFileAttributes
(j:\cygwin\home\eblake\coreutils\config.lnk) failed
  173  518186 [main] bash 2536 geterrno_from_win_error: windows error 2 ==
errno 2
   32  518218 [main] bash 2536 symlink_info::check: 0 = symlink.check
(j:\cygwin\home\eblake\coreutils\config, 0x22E2D0) (0x2A)
 2435  520653 [main] bash 2536 mount_info::conv_to_win32_path:
conv_to_win32_path (/cygdrive/j/cygwin/home/eblake/coreutils)
   74  520727 [main] bash 2536 mount_info::cygdrive_win32_path: src
'/cygdrive/j/cygwin/home/eblake/coreutils', dst
'j:\cygwin\home\eblake\coreutils'
   31  520758 [main] bash 2536 set_flags: flags: binary (0x2)
   28  520786 [main] bash 2536 mount_info::conv_to_win32_path: src_path
/cygdrive/j/cygwin/home/eblake/coreutils, dst
j:\cygwin\home\eblake\coreutils, flags 0x2A, rc 0
 1549  522335 [main] bash 2536 symlink_info::check: not a symlink
  109  522444 [main] bash 2536 symlink_info::check: 0 = symlink.check
(j:\cygwin\home\eblake\coreutils, 0x22E2D0) (0x2A)
   35  522479 [main] bash 2536 path_conv::check:
this->path(j:\cygwin\home\eblake\coreutils\config), has_acls(0)
 1350  523829 [main] bash 2536 seterrno_from_win_error:
/netrel/src/cygwin-1.5.19-1/winsup/cygwin/path.cc:3965 windows error 1
  137  523966 [main] bash 2536 geterrno_from_win_error: windows error 1 ==
errno 54
   30  523996 [main] bash 2536 __set_errno: void
seterrno_from_win_error(const char*, int, DWORD):310 val 54
   32  524028 [main] bash 2536 chdir: -1 = chdir() cygheap->cwd.posix
'/cygdrive/j/cygwin/home/eblake/coreutils' native
'j:\cygwin\home\eblake\coreutils\config'
bash: line 0: cd: config: Invalid request code
...

- --
Life is short - so eat dessert first!

Eric Blake             ebb9@byu.net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFD32jI84KuGfSFAYARAseFAKCv8E0io02NJI/WR4LYIBNFVHGErACfYsna
4K2BEodNiEe7i1lB43YKKPQ=
=ssIG
-----END PGP SIGNATURE-----

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]