** Description changed:
[Impact]
Dovecot users using the fs quota plugin see wrong quota calculation
(incorrect overquota situation).
[Test Case]
On host system:
---------------
$ multipass launch 18.04 --name ubuntu-bionic
$ multipass exec ubuntu-bionic -- bash
In vm:
------
$ sudo passwd ubuntu # set to 'ubuntu'
# Enable quota support on root partition
$ sudo apt-get install linux-image-extra-virtual
$ sudo nano /etc/fstab
- LABEL=cloudimg-rootfs / ext4 usrquota,grpquota 0 0
+ LABEL=cloudimg-rootfs / ext4 usrquota,grpquota 0 0
$ sudo mount -o remount /
$ sudo cat /proc/mounts | grep ' / '
- /dev/sda1 / ext4 rw,relatime,quota,usrquota,grpquota,data=ordered 0 0
+ /dev/sda1 / ext4 rw,relatime,quota,usrquota,grpquota,data=ordered 0 0
# Set a quota
$ sudo apt-get install quota
$ sudo quotacheck -ugm /
$ sudo quotaon -v /
- /dev/sda1 [/]: group quotas turned on
- /dev/sda1 [/]: user quotas turned on
+ /dev/sda1 [/]: group quotas turned on
+ /dev/sda1 [/]: user quotas turned on
$ sudo edquota -u ubuntu
- Disk quotas for user ubuntu (uid 1000):
- Filesystem blocks soft hard inodes
soft hard
- /dev/sda1 36 0 0 12
0 0
+ Disk quotas for user ubuntu (uid 1000):
+ Filesystem blocks soft hard inodes
soft hard
+ /dev/sda1 36 0 0 12
0 0
# Set these to some arbitrary values:
- Filesystem blocks soft hard inodes
soft hard
- /dev/sda1 36 10 20 12
0 0
+ Filesystem blocks soft hard inodes
soft hard
+ /dev/sda1 36 10 20 12
0 0
$ sudo quota -vs ubuntu
- Disk quotas for user ubuntu (uid 1000):
- Filesystem space quota limit grace files quota limit grace
- /dev/sda1 48K* 10K 20K 7days 14 0 0
+ Disk quotas for user ubuntu (uid 1000):
+ Filesystem space quota limit grace files quota limit grace
+ /dev/sda1 48K* 10K 20K 7days 14 0 0
$ sudo quota -vs ubuntu
- Disk quotas for user ubuntu (uid 1000):
- Filesystem space quota limit grace files quota limit grace
- /dev/sda1 48K* 10K 20K 7days 14 0 0
+ Disk quotas for user ubuntu (uid 1000):
+ Filesystem space quota limit grace files quota limit grace
+ /dev/sda1 48K* 10K 20K 7days 14 0 0
$ sudo setquota -u ubuntu 200M 220M 0 0 /
$ sudo quota -v ubuntu
- Disk quotas for user ubuntu (uid 1000):
- Filesystem blocks quota limit grace files quota limit grace
- /dev/sda1 52 204800 225280 15 0 0
+ Disk quotas for user ubuntu (uid 1000):
+ Filesystem blocks quota limit grace files quota limit grace
+ /dev/sda1 52 204800 225280 15 0 0
# Install dovecot and configure with the quota plugin
$ sudo apt-get install dovecot-core dovecot-imapd
$ sudo sed -i 's/^#mail_plugins = /mail_plugins = quota/'
/etc/dovecot/conf.d/10-mail.conf
- $ sudo sed -i 's/ #mail_plugins = / mail_plugins = quota /'
/etc/dovecot/conf.d/20-imap.conf
- $ sudo sed -i 's/ #quota = fs:User quota/ quota = fs:User quota'
/etc/dovecot/conf.d/90-quota.conf
+ $ sudo sed -i 's/ #mail_plugins = / mail_plugins = quota imap_quota #/'
/etc/dovecot/conf.d/20-imap.conf
+ $ sudo sed -i 's/ #quota = fs:User quota/ quota = fs:User quota/'
/etc/dovecot/conf.d/90-quota.conf
$ sudo service dovecot restart
$ doveadm quota get -u ubuntu
- Quota name Type Value Limit %
- User quota STORAGE 53248 204800 26
+ Quota name Type Value Limit %
+ User quota STORAGE 53248 204800 26
# Connect via imap
$ openssl s_client -connect localhost:993
- * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE
AUTH=PLAIN] Dovecot (Ubuntu) ready.
+ * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE
AUTH=PLAIN] Dovecot (Ubuntu) ready.
? LOGIN ubuntu ubuntu
? OK [... QUOTA] Logged in
? GETQUOTAROOT INBOX
* QUOTAROOT INBOX "User quota"
* QUOTA "User quota" (STORAGE 53248 204800)
? OK Getquotaroot completed (0.001 + 0.000 secs).
-
[Regression Potential]
* only users using the fs quota plugin are affected
-
[Original Report]
Packages:
dovecot 2.2.33.2-1-ubuntu4.1
ubuntu 18.04.1 LTS
The quota is erroneously calculated with the fs quota plugin.
It was working fine on ubuntu 16.04 with the same config.
- * Prerequisite: user quota configured on filesystem where dovecot
+ * Prerequisite: user quota configured on filesystem where dovecot
stores your email (e.g. /home partition)
- * configure dovecot fs quota plugin.
+ * configure dovecot fs quota plugin.
Quota configuration:
plugin {
quota = fs:User quota
}
- * use doveadm command to verify the result:
- $doveadm quota get -u user
- The result is shown in kb and as a percentage value
+ * use doveadm command to verify the result:
+ $doveadm quota get -u user
+ The result is shown in kb and as a percentage value
Here's the IMAP Session:
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE
AUTH=PLAIN AUTH=LOGIN] Dovecot (Ubuntu) ready.
? LOGIN user password
? OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE
SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT
MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS
LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN
CONTEXT=SEARCH LIST-STATUS BINARY MOVE QUOTA] Logged in
? GETQUOTAROOT INBOX
* QUOTAROOT INBOX "User quota"
* QUOTA "User quota" (STORAGE 2775445504 4096001)
? OK Getquotaroot completed (0.001 + 0.000 secs).
Storage should actually be around 2775445 KB.
The quota is correct from my ext3 filesystem quota of 4096001 KB.
Output of repquota:
*** Report for user quotas on device /dev/sdc
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
user -- 2710396 4096001 4194304 65743 0 0
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1795919
Title:
[SRU] fs quota calculation is wrong
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dovecot/+bug/1795919/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs