linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Miklos Szeredi <miklos@szeredi.hu>
To: Nikolaus Rath <nikolaus@rath.org>
Cc: Martin Kaspar via fuse-devel <fuse-devel@lists.sourceforge.net>,
	Linux FS Devel <linux-fsdevel@vger.kernel.org>,
	Miklos Szeredi <mszeredi@redhat.com>
Subject: Re: [fuse-devel] Semantics of fuse_notify_delete()
Date: Tue, 1 Aug 2023 16:48:03 +0200	[thread overview]
Message-ID: <CAJfpegtoi2jNaKjvqMqrWQQrDoJkTZqheXFAb3MMVv7WVsHi0A@mail.gmail.com> (raw)
In-Reply-To: <2e44acdd-b113-43c3-80cb-150f09478383@app.fastmail.com>

On Tue, 1 Aug 2023 at 16:40, Nikolaus Rath <nikolaus@rath.org> wrote:
>
> On Tue, 1 Aug 2023, at 13:53, Miklos Szeredi via fuse-devel wrote:
> > Here's one with the virtual env and the correct head:
> >
> > root@kvm:~/s3ql# git log -1 --pretty="%h %s"
> > 3d35f18543d9 Reproducer for notify_delete issue. To confirm:
> > root@kvm:~/s3ql# ~/s3ql-python-env/bin/python bin/s3qlrm mnt/test
> > WARNING: Received unknown command via control inode
> > ERROR: Uncaught top-level exception:
> > Traceback (most recent call last):
> >   File "/root/s3ql/bin/s3qlrm", line 21, in <module>
> >     s3ql.remove.main(sys.argv[1:])
> >   File "/root/s3ql/src/s3ql/remove.py", line 72, in main
> >     pyfuse3.setxattr(ctrlfile, 'rmtree', cmd)
> >   File "src/pyfuse3.pyx", line 629, in pyfuse3.setxattr
> > OSError: [Errno 22] Invalid argument: 'mnt/test/.__s3ql__ctrl__'
>
> This is odd. I have never heard of anyone having this problem before and it also works fine in the CI.
>
> I apologize that this is taking so much of your time.
>
> I have changed the code a bit to print out what exactly it is receiving: https://github.com/s3ql/s3ql/commit/eb31f7bff4bd985d68fa20c793c2f2edf5db61a5
>
> Would you mind updating your branch and trying again? (You'll need to fetch and reset, since I rebased on top of current master just to be sure).
>
> I can still reproduce this every time (without any other error):
>
> $ mkdir bucket
> $ bin/mkfs.s3ql --plain local://bucket
> Before using S3QL, make sure to read the user's guide, especially
> the 'Important Rules to Avoid Losing Data' section.
> Creating metadata tables...
> Uploading metadata...
> Uploading metadata...
> Uploaded 1 out of ~1 dirty blocks (100%)
> Calculating metadata checksum...
> $ mkdir mnt
> $ bin/mount.s3ql --fg local://bucket mnt &
> Using 10 upload threads.
> Autodetected 1048514 file descriptors available for cache entries
> Using cached metadata.
> Setting cache size to 315297 MB
> Mounting local:///home/nikratio/in-progress/s3ql/bucket/ at /home/nikratio/in-progress/s3ql/mnt...
>
> $ md mnt/test; echo foo > mnt/test/bar
> $ bin/s3qlrm mnt/test
> fuse: writing device: Directory not empty
> ERROR: Failed to submit invalidate_entry request for parent inode 1, name b'test'
> Traceback (most recent call last):
>   File "src/internal.pxi", line 125, in pyfuse3._notify_loop
>   File "src/pyfuse3.pyx", line 915, in pyfuse3.invalidate_entry
> OSError: [Errno 39] fuse_lowlevel_notify_delete returned: Directory not empty
>
> nikratio@vostro ~/i/s3ql (notify_delete_bug)>

WARNING: Received unknown command via control inode: b"1, b'test')"
ERROR: Uncaught top-level exception:
Traceback (most recent call last):
  File "/root/s3ql/bin/s3qlrm", line 21, in <module>
    s3ql.remove.main(sys.argv[1:])
  File "/root/s3ql/src/s3ql/remove.py", line 74, in main
    pyfuse3.setxattr(ctrlfile, 'rmtree', cmd)
  File "src/pyfuse3.pyx", line 629, in pyfuse3.setxattr
OSError: [Errno 22] Invalid argument: 'mnt/test/.__s3ql__ctrl__'

Thanks,
Miklos

  reply	other threads:[~2023-08-01 14:48 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-26 18:08 Semantics of fuse_notify_delete() Nikolaus Rath
2023-07-27  8:04 ` Miklos Szeredi
2023-07-27 11:37   ` [fuse-devel] " Nikolaus Rath
2023-07-28  8:45     ` Nikolaus Rath
2023-07-28  8:52       ` Miklos Szeredi
2023-07-31 14:12         ` Miklos Szeredi
2023-08-01 10:53           ` Nikolaus Rath
2023-08-01 12:53             ` Miklos Szeredi
2023-08-01 14:40               ` Nikolaus Rath
2023-08-01 14:48                 ` Miklos Szeredi [this message]
2023-08-01 16:05                   ` Nikolaus Rath
2023-08-01 17:39                     ` Miklos Szeredi
2023-08-02 13:18     ` Miklos Szeredi
2023-08-02 14:43       ` Nikolaus Rath
2023-08-02 17:48         ` Miklos Szeredi

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=CAJfpegtoi2jNaKjvqMqrWQQrDoJkTZqheXFAb3MMVv7WVsHi0A@mail.gmail.com \
    --to=miklos@szeredi.hu \
    --cc=fuse-devel@lists.sourceforge.net \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=mszeredi@redhat.com \
    --cc=nikolaus@rath.org \
    /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;
as well as URLs for NNTP newsgroup(s).