All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Ottens <kevin.ottens@enioka.com>
To: Steve French <smfrench@gmail.com>
Cc: linux-cifs@vger.kernel.org, abartlet@samba.org
Subject: Re: Different behavior of POSIX file locks depending on cache mode
Date: Mon, 27 May 2024 18:38:41 +0200	[thread overview]
Message-ID: <6658550.MDQidcC6GM@wintermute> (raw)
In-Reply-To: <CAH2r5mtzzgG9-peAakYhBNdpahQ=R8wkhJxUQJ+oZtzEvuNjSg@mail.gmail.com>

Hello,

On Thursday 23 May 2024 18:12:27 CEST Steve French wrote:
> What is the behavior with "nobrl" mount option?

With nobrl no failure shows whatever the cache policy (so my lock_test gives 
always the output of the example with cache=none below).

> and what is the behavior when running with the POSIX extensions enabled
> (e.g. to current Samba or ksmbd adding "posix" to the mount options)

By current you mean 4.20.1?

So far I tested with 4.19.6 but couldn't get it to work. I get the following 
in dmesg:
CIFS: VFS: Server does not support mounting with posix SMB3.11 extensions

Despite having the following in my smb.conf:
server max protocol = SMB3_11
smb3 unix extensions = yes

Am I using something too old? I honestly don't know when the extensions were 
added.

Regards.
 
> On Thu, May 23, 2024 at 11:08 AM Kevin Ottens <kevin.ottens@enioka.com> 
wrote:
> > Hello,
> > 
> > I've been hunting down a bug exhibited by Libreoffice regarding POSIX file
> > locks in conjunction with CIFS mounts. In short: just before saving, it
> > reopens a file on which it already holds a file lock (via another file
> > descriptor in the same process) in order to read from it to create a
> > backup
> > copy... but the read call fails.
> > 
> > I've been in discussion with Andrew Bartlett for a little while regarding
> > this issue and, after exploring several venues, he advised me to send an
> > email to this list in order to get more opinions about it.
> > 
> > The latest discovery we did was that the cache option on the mountpoint
> > seems to impact the behavior of the POSIX file locks. I made a minimal
> > test> 
> > application (attached to this email) which basically does the following:
> >  * open a file for read/write
> >  * set a POSIX write lock on the whole file
> >  * open the file a second time and try to read from it
> >  * open the file a third time and try to write to it
> > 
> > It assumes there is already some text in the file. Also, as it goes it
> > outputs information about the calls.
> > 
> > The output I get is the following with cache=strict on the mount:
> > ---
> > Testing with /mnt/foo
> > Got new file descriptor 3
> > Lock set: 1
> > Second file descriptor 4
> > Read from second fd: x count: -1
> > Third file descriptor 5
> > Wrote to third fd: -1
> > ---
> > 
> > If I'm using cache=none:
> > ---
> > Testing with /mnt/foo
> > Got new file descriptor 3
> > Lock set: 1
> > Second file descriptor 4
> > Read from second fd: b count: 1
> > Third file descriptor 5
> > Wrote to third fd: 1
> > ---
> > 
> > That's the surprising behavior which prompted the email on this list. Is
> > it
> > somehow intended that the cache option would impact the semantic of the
> > file locks? At least it caught me by surprise and I wouldn't expect such
> > a difference in behavior.
> > 
> > Now, since the POSIX locks are process wide, I would have expected to have
> > the output I'm getting for the "cache=none" case to be also the one I'm
> > getting for the "cache=strict" case.
> > 
> > I'm looking forward to feedback on this one. I really wonder if we missed
> > something obvious or if there is some kind of bug in the cifs driver.
> > 
> > Regards.
> > --
> > Kévin Ottens
> > kevin.ottens@enioka.com
> > +33 7 57 08 95 13


-- 
Kévin Ottens
kevin.ottens@enioka.com
+33 7 57 08 95 13



  reply	other threads:[~2024-05-27 16:38 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-23 16:08 Different behavior of POSIX file locks depending on cache mode Kevin Ottens
2024-05-23 16:12 ` Steve French
2024-05-27 16:38   ` Kevin Ottens [this message]
2024-06-10  4:41   ` Andrew Bartlett
2024-06-10 20:05     ` Steve French
2024-06-10 20:50       ` Andrew Bartlett
     [not found]       ` <c6da3de7c205d40a41907874a0e6d26b6c8132fe.camel@samba.org>
2024-06-10 20:53         ` Steve French
2024-06-10 20:57           ` Andrew Bartlett
2024-06-10 21:19           ` Ralph Boehme
2024-06-10 22:49             ` Steve French
2024-06-10 22:53               ` Steve French
2024-06-24  4:54     ` Steve French
2024-06-25  6:00       ` Andrew Bartlett
2024-06-25  7:41         ` Kevin Ottens
2024-06-27 15:04           ` Kevin Ottens
2024-07-10  9:28             ` Andrew Bartlett
2024-07-11  2:03               ` Steve French
2024-07-11  4:20                 ` Andrew Bartlett
2024-08-15 20:47     ` Steve French
2024-08-22 17:06       ` Kevin Ottens
2024-09-01  4:48         ` Steve French

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=6658550.MDQidcC6GM@wintermute \
    --to=kevin.ottens@enioka.com \
    --cc=abartlet@samba.org \
    --cc=linux-cifs@vger.kernel.org \
    --cc=smfrench@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.