From: ST <smntov@gmail.com>
To: Chris Murphy <lists@colorremedies.com>
Cc: Qu Wenruo <quwenruo.btrfs@gmx.com>,
Btrfs BTRFS <linux-btrfs@vger.kernel.org>
Subject: Re: quotas: failure on removing a file via SFTP/SSH
Date: Tue, 21 Nov 2017 23:00:21 +0200 [thread overview]
Message-ID: <1511298021.1675.14.camel@gmail.com> (raw)
In-Reply-To: <CAJCQCtRCPfcSNQseoRdB1pq+DkF7pr6nt4syyYy1VWXYwy2R6g@mail.gmail.com>
On Tue, 2017-11-21 at 11:33 -0700, Chris Murphy wrote:
> On Tue, Nov 21, 2017 at 8:29 AM, ST <smntov@gmail.com> wrote:
> >> >>> I'm trying to use quotas for a simple chrooted sftp setup, limiting
> >> >>> space for each user's subvolume (now for testing to 1M).
> >> >>>
> >> >>> I tried to hit the limit by uploading files and once it comes to the
> >> >>> limit I face following problem: if I try to free space by removing a
> >> >>> file via Linux sftp client (or Filezilla) - I get error:
> >> >>> "Couldn't delete file: Failure"
> >> >>>
> >> >>> Sometimes, but not always, if I repeat it for 3-5 times it does removes
> >> >>> the file at the end.
> >> >>> If I login as root and try to remove the file via SSH I get the error:
> >> >>> "rm: cannot remove 'example.txt': Disk quota exceeded"
> >> >>>
> >> >>> What is the problem? And how can I solve it?
> >> >>
> >> >> Kernel version first.
> >> >>
> >> >> If it's possible, please use latest kernel, at least newer than v4.10,
> >> >> since we have a lot of qgroup reservation related fixes in newer kernel.
> >> >>
> >> >> Then, for small quota, due to the nature of btrfs metadata CoW and
> >> >> relative large default node size (16K), it's quite easy to hit disk
> >> >> quota for metadata.
> >> >
> >> > Yes, but why I get the error specifically on REMOVING a file? Even if I
> >> > hit disk quota - if I free up space - it should be possible, isn't it?
> >>
> >> It's only true for fs modifying its metadata in-place (and use journal
> >> to protect it).
> >>
> >> For fs using metadata CoW, even freeing space needs extra space for new
> >> metadata.
> >>
> >
> > Wait, it doesn't sound like a bug, but rather like a flaw in design.
> > This means - each time a user hits his quota limit he will get stuck
> > without being able to free space?!!
>
> It's a good question if quotas can make it possible for a user to get
> wedged into a situation that will require an admin to temporarily
> raise the quota in order to make file deletion possible.
Why question? It's a fact. That's what I face right now.
> This is not a
> design flaw, all COW file systems *add* data when deleting. The
> challenge is how to teach the quota system to act like a hard limit
> for data writes that clearly bust the quota, versus a soft limit that
> tolerates some extra amount above the quota for the purpose of
> eventually deleting data. That's maybe non-trivial. It's not that it's
> a design flaw. Metadata can contain inline data, so how exactly to you
> tell what kinds of writes are permitted (deleting a file) and what
> kind of writes are not (append data to a file, or create new file)?
>
> But for sure the user space tools should prevent setting too low a
> quota limit. If the limit cannot be reasonably expected to work, it
> should be disallowed. So maybe the user space tools need to enforce a
> minimum quota, something like 100MiB, or whatever.
>
Would you like to open an issue with your enhancement suggestions on the
bug tracker so this case doesn't get forgotten?
Thank you!
next prev parent reply other threads:[~2017-11-21 21:00 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-21 12:08 quotas: failure on removing a file via SFTP/SSH ST
2017-11-21 12:25 ` Lakshmipathi.G
2017-11-21 13:16 ` ST
2017-11-21 12:28 ` Qu Wenruo
2017-11-21 13:18 ` ST
2017-11-21 14:34 ` Qu Wenruo
2017-11-21 15:29 ` ST
2017-11-21 18:33 ` Chris Murphy
2017-11-21 21:00 ` ST [this message]
2017-11-22 0:39 ` Qu Wenruo
2017-11-22 8:32 ` ST
2017-11-22 9:01 ` Qu Wenruo
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=1511298021.1675.14.camel@gmail.com \
--to=smntov@gmail.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=lists@colorremedies.com \
--cc=quwenruo.btrfs@gmx.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.