X-Spam-Check-By: sourceware.org Message-ID: <43DF68C9.5010007@byu.net> Date: Tue, 31 Jan 2006 06:40:25 -0700 From: Eric Blake User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: chdir on remote win98 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com -----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 AT byu DOT 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/