1.7 beta vs MSSE-- breaks 'cvs co', apparently on rename()
John Hood
jh@sandstorm.net
Tue Sep 22 21:36:00 GMT 2009
I'm having a problem with 1.7 beta on Windows XP with the Microsoft
Security Essentials public beta installed.
Microsoft Security Essentials Version: 1.0.1500.0
If I try 'cvs co <modulename>' or 'cvs up', CVS will run for a while but
eventually exit with
cvs [checkout aborted]: cannot rename file CVS/Entries.Backup to
CVS/Entries: Permission denied
(and this is somewhat heinous if you're updating, because if you run an
update again in this state, CVS loses any usable CVS/Entries file, and
neither you nor it can tell what you've got in the working dir. So
don't try and reproduce this problem on a valuable CVS work dir.)
If I uncheck "Turn on real-time protection" in the MSSE Settings tab,
things work OK.
strace indicates that rename() is failing on a Windows error. There
seems to be some variation in how far it gets before failing. Sometimes
strace makes the problem much rarer and cvs gets much further. It does
look more like an MSSE bug than a Cygwin bug, but this seems like the
best first place to report it.
Unfortunately, MSSE doesn't obviously present any useful log
information.
This can be reproduced pretty easily by running
cvs -d :pserver:anoncvs@cygwin.com:/cvs/src login
cvs -d :pserver:anoncvs@cygwin.com:/cvs/src co winsup
in a Cygwin or Xwin xterm session.
Attached are cygcheck output, and appended are snippets of strace output
and redirected stdout/stderr on an execution of
rm -rf src; strace -o /tmp/cvs.strace cvs -z 6 -d
:pserver:anoncvs@cygwin.com:/cvs/src co winsup > /tmp/cvs.log 2>&1
(the mailing list's spam filtering wouldn't accept attachments, email me
for more complete copies)
I can help out with gathering information and minor debugging, but I
can't really get into serious spelunking through Cygwin code on this,
Windows is a diversion from my main coding work on FreeBSD...
--jh
tail of cvs output:
U src/winsup/testsuite/winsup.api/pthread/condvar4.c
U src/winsup/testsuite/winsup.api/pthread/condvar5.c
cvs [checkout aborted]: cannot rename file CVS/Entries.Backup to
CVS/Entries: Permission denied
strace output excerpt:
66 123429821 [main] cvs 1044 close: close (5)
31 123429852 [main] cvs 1044 fhandler_base::close: closing
'/home/jh/tmp/src/winsup/testsuite/winsup.api/pthread/CVS/Entries.Backup'
handle 0x5F0
2368 123432220 [main] cvs 1044 close: 0 = close (5)
203 123432423 [main] cvs 1044 normalize_posix_path: src
CVS/Entries.Backup
36 123432459 [main] cvs 1044 cwdstuff::get: posix
/home/jh/tmp/src/winsup/testsuite/winsup.api/pthread
36 123432495 [main] cvs 1044 cwdstuff::get:
(/home/jh/tmp/src/winsup/testsuite/winsup.api/pthread) = cwdstuff::get
(0x10010038, 32768, 1, 0), errno 2
32 123432527 [main] cvs 1044 normalize_posix_path:
/home/jh/tmp/src/winsup/testsuite/winsup.api/pthread/CVS/Entries.Backup
= normalize_posix_path (CVS/Entries.Backup)
33 123432560 [main] cvs 1044 mount_info::conv_to_win32_path:
conv_to_win32_path
(/home/jh/tmp/src/winsup/testsuite/winsup.api/pthread/CVS/Entries.Backup)
34 123432594 [main] cvs 1044 set_flags: flags: binary (0x2)
32 123432626 [main] cvs 1044 mount_info::conv_to_win32_path:
src_path
/home/jh/tmp/src/winsup/testsuite/winsup.api/pthread/CVS/Entries.Backup,
dst
C:\cygwin\home\jh\tmp\src\winsup\testsuite\winsup.api\pthread\CVS\Entries.Backup,
flags 0x3000A, rc 0
110 123432736 [main] cvs 1044 symlink_info::check: not a symlink
56 123432792 [main] cvs 1044 symlink_info::check: 0 = symlink.check
(C:\cygwin\home\jh\tmp\src\winsup\testsuite\winsup.api\pthread\CVS\Entries.Backup,
0x22B558) (0x3000A)
38 123432830 [main] cvs 1044 path_conv::check:
this->path(C:\cygwin\home\jh\tmp\src\winsup\testsuite\winsup.api\pthread\CVS\Entries.Backup),
has_acls(1)
33 123432863 [main] cvs 1044 normalize_posix_path: src CVS/Entries
31 123432894 [main] cvs 1044 cwdstuff::get: posix
/home/jh/tmp/src/winsup/testsuite/winsup.api/pthread
33 123432927 [main] cvs 1044 cwdstuff::get:
(/home/jh/tmp/src/winsup/testsuite/winsup.api/pthread) = cwdstuff::get
(0x10010038, 32768, 1, 0), errno 2
48 123432975 [main] cvs 1044 normalize_posix_path:
/home/jh/tmp/src/winsup/testsuite/winsup.api/pthread/CVS/Entries =
normalize_posix_path (CVS/Entries)
31 123433006 [main] cvs 1044 mount_info::conv_to_win32_path:
conv_to_win32_path
(/home/jh/tmp/src/winsup/testsuite/winsup.api/pthread/CVS/Entries)
32 123433038 [main] cvs 1044 set_flags: flags: binary (0x2)
31 123433069 [main] cvs 1044 mount_info::conv_to_win32_path:
src_path
/home/jh/tmp/src/winsup/testsuite/winsup.api/pthread/CVS/Entries, dst
C:\cygwin\home\jh\tmp\src\winsup\testsuite\winsup.api\pthread\CVS\Entries,
flags 0x3000A, rc 0
771 123433840 [main] cvs 1044 symlink_info::check: not a symlink
92 123433932 [main] cvs 1044 symlink_info::check: 0 = symlink.check
(C:\cygwin\home\jh\tmp\src\winsup\testsuite\winsup.api\pthread\CVS\Entries,
0x22B558) (0x3000A)
416 123434348 [main] cvs 1044 path_conv::check:
this->path(C:\cygwin\home\jh\tmp\src\winsup\testsuite\winsup.api\pthread\CVS\Entries),
has_acls(1)
1241 123435589 [main] cvs 1044 seterrno_from_win_error:
/netrel/src/cygwin-1.7.0-61/winsup/cygwin/syscalls.cc:2003 windows error 5
78 123435667 [main] cvs 1044 geterrno_from_win_error: windows error
5 == errno 13
32 123435699 [main] cvs 1044 __set_errno: void
seterrno_from_win_error(const char*, int, DWORD):319 val 13
56 123435755 [main] cvs 1044 rename: -1 = rename
(CVS/Entries.Backup, CVS/Entries)
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cygcheck.out
URL: <http://cygwin.com/pipermail/cygwin/attachments/20090922/31b0696e/attachment.ksh>
-------------- next part --------------
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list