X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Message-ID: <4F2C0F17.20602@lysator.liu.se> Date: Fri, 03 Feb 2012 17:45:11 +0100 From: Peter Rosin User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: rm fails but returns success References: <4F2C0533 DOT 2070802 AT lysator DOT liu DOT se> <20120203161701 DOT GE30293 AT calimero DOT vinschen DOT de> <4F2C0AF8 DOT 8020102 AT lysator DOT liu DOT se> <20120203163750 DOT GA10022 AT calimero DOT vinschen DOT de> In-Reply-To: <20120203163750.GA10022@calimero.vinschen.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: 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 Corinna Vinschen skrev 2012-02-03 17:37: > On Feb 3 17:27, Peter Rosin wrote: >> Corinna Vinschen skrev 2012-02-03 17:17: >>> On Feb 3 17:02, Peter Rosin wrote: >>>> Hi! >>>> >>>> I have this annoying leftover file from a automake testsuite run. >>>> I don't know if it was created by an MSYS process or a Cygwin >>>> process, but I can't get rid of it. I can't take ownership of >>>> it either, not even as admin. I haven't tried stopping all >>>> MSYS/Cygwin processes yet, nor rebooting, but I'd rather not. >>>> >>>> Any help with that is appreciated. No, not rebooting :-) >>>> >>>> However, that is not really why I'm writing, I'm writing to >>>> report the following bug related to the above file. >>>> >>>> $ uname -a >>>> CYGWIN_NT-6.1-WOW64 peda-pc 1.7.10s(0.259/5/3) 20120123 00:15:09 i686 Cygwin >>>> $ ls -l aclibobj.log-t >>>> -rw-r----- 1 ???????? ???????? 2113 Jan 31 16:09 aclibobj.log-t >>>> $ rm aclibobj.log-t; echo $? >>>> rm: remove write-protected regular file `aclibobj.log-t'? yes >>>> 0 >>> >>> Send an strace of this, please. One reason that rm (better: unlink(2)) >>> reports success is if the file is still in use by another process but >>> it's already marked as "delete pending" in the OS. This should only >>> occur if a non-Cygwin process is still holding a handle to the file. >> >> Here's the strace. >> [...] >> 17 11885 [main] rm 16748 unlink_nt: Trying to delete \??\C:\cygwin\home\peda\automake\tests\aclibobj.log-t, isdir = 0 >> 26 11911 [main] rm 16748 unlink_nt: Delete \??\C:\cygwin\home\peda\automake\tests\aclibobj.log-t already pending >> 16 11927 [main] rm 16748 unlink_nt: \??\C:\cygwin\home\peda\automake\tests\aclibobj.log-t, return status = 0x0 >> 15 11942 [main] rm 16748 unlink: 0 = unlink(/home/peda/automake/tests/aclibobj.log-t) > > Yup, as I supected. The delete is pending already. Therefore the file > is logically already successfully deleted. Only the fact that some > importunate non-Cygwin process is still holding an open handle to the > file forestalls its disappearance. > > There's nothing at all you can do about that, other than to identify the > process holding the open handle and kill it. I killed the suspended MSYS expr process that I mentioned in the other mail (I also confirmed that it indeed had the file open) and the file went away. Thanks for your help! Cheers, Peter -- 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