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