delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/10/21/00:19:28

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-Authentication-Warning: slinky.cs.nyu.edu: pechtcha owned process doing -bs
Date: Mon, 21 Oct 2002 00:19:20 -0400 (EDT)
From: Igor Pechtchanski <pechtcha AT cs DOT nyu DOT edu>
Reply-To: cygwin AT cygwin DOT com
To: cygwin AT cygwin DOT com
Subject: cvs unable to remove lock directory; rm -r works
Message-ID: <Pine.GSO.4.44.0210202357090.18735-100000@slinky.cs.nyu.edu>
Importance: Normal
MIME-Version: 1.0

Hi,

I've been trying to track this down for a few days, to no avail.
I have a cvs repository on a samba drive.  My OS is Win2k SP2; CYGWIN is
set to "check_case:strict ntsec notitle nosmbntsec".  My cvs is 1.11.0-1
(I tried both the distribution binary and the one built from the source).
I also tried both cygwin-1.3.13-2 and the cvs HEAD.

When I attempt to check in a file, I receive the following message from
cvs:

$ cvs commit -m "" aaaa
Checking in aaaa;
/export/home/igor/testrepository/aaaa,v  <--  aaaa
new revision: 1.9; previous revision: 1.8
done
cvs commit: failed to remove lock dir /export/home/igor/testrepository/#cvs.lock: Permission denied
$

The relevant mount is

$ mount | grep export
\\samba.watson.ibm.com\igor on /export/home/igor type user (binmode)
$

I'm able to manually remove the directory using 'rm -rf'.  Furthermore,
the following program also works:

$ cat > t.c
#include <sys/unistd.h>
void main() {
  const char *dir = "/export/home/igor/testrepository/#cvs.lock";
  int res = rmdir(dir);
  printf ("%d = rmdir(\"%s\")\n", res, dir);
}
$ make t
gcc     t.c   -o t
$ ./t
0 = rmdir("/export/home/igor/testrepository/#cvs.lock")
$

As far as I could see, cvs also uses the rmdir from cygwin1.dll.  Yet it
was unable to remove the directory, for some reason.  Tracing it under gdb
showed that GetLastError after RemoveDirectory() returned 5
(ERROR_ACCESS_DENIED) when called from cvs.

Would anyone have any pointers on how I could debug this further?  Thanks,
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha AT cs DOT nyu DOT edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor AT watson DOT ibm DOT com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Water molecules expand as they grow warmer" (C) Popular Science, Oct'02, p.51


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019