From: Jeff King <peff@peff.net>
To: 'Yuri' <yuri@rawbw.com>
Cc: rsbecker@nexbridge.com, 'Junio C Hamano' <gitster@pobox.com>,
'Git Mailing List' <git@vger.kernel.org>
Subject: Re: [BUG] "git clean -df ." silently doesn't delete folders with stale .nfs* files
Date: Tue, 11 Jun 2024 02:48:47 -0400 [thread overview]
Message-ID: <20240611064847.GC3248245@coredump.intra.peff.net> (raw)
In-Reply-To: <8fdc76e2-3de2-4312-956c-2662336fa54d@rawbw.com>
On Mon, Jun 10, 2024 at 06:09:52PM -0700, 'Yuri' wrote:
> "touch .nfs12309" isn't enough.
>
> Here is a reliable way to reproduce the problem:
> 1. Have a git repository on an NFS disk.
> 2. mkdir xx
> 3. touch xx/x
> 4. tail -f xx/x &
> 5. rm xx/x
> 6. git clean -df .
>
> The last operation reproduces the problem. The xx directory and the .nfsNNNN
> file in it stay without warnings.
> The .nfsNNNN file is created by the NFS client when the xx/x file is
> removed.
That is not the behavior I get. I see:
$ git clean -df .
warning: failed to remove xx/.nfs0000000002c8197f00000002: Device or resource busy
Which makes sense, since the kernel fails our unlink() call. Maybe your
system behaves differently at the syscall level?
This is a pretty standard Debian system with kernel 6.8.12. I set up the
NFS mount with:
mkdir /mnt/{server,client}
exportfs -o rw,sync 127.0.0.1:/mnt/server
mount -t nfs 127.0.0.1:/mnt/server /mnt/client
and then made the repository in /mnt/client. "mount" tells me it's using
nfs4.
Running "git clean" on the server side does remove the files (no
warning, but the directories are actually removed).
-peff
next prev parent reply other threads:[~2024-06-11 6:48 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-10 18:36 [BUG] "git clean -df ." silently doesn't delete folders with stale .nfs* files Yuri
2024-06-10 19:58 ` Junio C Hamano
2024-06-10 20:08 ` Yuri
2024-06-10 21:37 ` Junio C Hamano
2024-06-10 23:27 ` Yuri
2024-06-10 23:55 ` rsbecker
2024-06-11 0:29 ` Junio C Hamano
2024-06-11 1:09 ` 'Yuri'
2024-06-11 1:19 ` rsbecker
2024-06-11 1:22 ` 'Yuri'
2024-06-11 1:46 ` Chris Torek
2024-06-11 6:48 ` Jeff King [this message]
2024-06-11 7:43 ` 'Yuri'
2024-06-13 8:09 ` Gabor Gombas
2024-06-13 9:21 ` 'Yuri'
2024-06-11 13:48 ` rsbecker
2024-06-11 17:46 ` 'Yuri'
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240611064847.GC3248245@coredump.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=rsbecker@nexbridge.com \
--cc=yuri@rawbw.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox