[Dovecot] 1.1.7: quota problem, unable to delete mails when quota exceeded
Hi,
When user exceeds it's quota then dovecot can't create it's files and it's showing zero mails :( This also means that user is unable to delete it's own mails. Sounds like kind-of bug, right?
Dec 15 08:28:37 mbox1 dovecot: IMAP(xxx): open(/var/mail/xxx/dovecot-uidlist.lock) failed: Disk quota exceeded Dec 15 08:28:37 mbox1 dovecot: IMAP(kdudus): file_dotlock_create(/var/mail/xxx/dovecot-uidlist) failed: Disk quota exceeded
This sometimes ends with: Dec 15 08:36:43 mbox1 dovecot: IMAP(xxx): Disconnected: Internal error occurred. Refer to server log for more information. [2008-12-15 08:36:43] bytes=409/896
-- Arkadiusz Miśkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/
On Mon, 2008-12-15 at 08:44 +0100, Arkadiusz Miskiewicz wrote:
Hi,
When user exceeds it's quota then dovecot can't create it's files and it's showing zero mails :( This also means that user is unable to delete it's own mails. Sounds like kind-of bug, right?
Dec 15 08:28:37 mbox1 dovecot: IMAP(xxx): open(/var/mail/xxx/dovecot-uidlist.lock) failed: Disk quota exceeded Dec 15 08:28:37 mbox1 dovecot: IMAP(kdudus): file_dotlock_create(/var/mail/xxx/dovecot-uidlist) failed: Disk quota exceeded
I don't think the mbox file should be modified if it's not locked. I suppose it's not very ideal either if user can't delete mails then, but at least the mailbox doesn't get corrupted.
Anyway, you most likely don't really need to use dotlocks at all. Just make sure that your MDA uses fcntl locks and set mbox_write_locks=fcntl.
Also I think Dovecot v1.1 should be able to open the mailbox read-only even if it can't create the dotlock? Are you using v1.0?
On Monday 15 of December 2008, Timo Sirainen wrote:
On Mon, 2008-12-15 at 08:44 +0100, Arkadiusz Miskiewicz wrote:
Hi,
When user exceeds it's quota then dovecot can't create it's files and it's showing zero mails :( This also means that user is unable to delete it's own mails. Sounds like kind-of bug, right?
Dec 15 08:28:37 mbox1 dovecot: IMAP(xxx): open(/var/mail/xxx/dovecot-uidlist.lock) failed: Disk quota exceeded Dec 15 08:28:37 mbox1 dovecot: IMAP(kdudus): file_dotlock_create(/var/mail/xxx/dovecot-uidlist) failed: Disk quota exceeded
I don't think the mbox file should be modified if it's not locked. I suppose it's not very ideal either if user can't delete mails then, but at least the mailbox doesn't get corrupted.
I use maildirs only.
Anyway, you most likely don't really need to use dotlocks at all. Just make sure that your MDA uses fcntl locks and set mbox_write_locks=fcntl.
Will look. Right now I'm trying to move CONTROL to other fs where quota doesn't apply to see what will happen.
Also I think Dovecot v1.1 should be able to open the mailbox read-only even if it can't create the dotlock? Are you using v1.0?
1.1.7 as in subject but read-only won't help in deleting mails that cause quota being exceeded 8)
-- Arkadiusz Miśkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/
On Mon, 2008-12-15 at 09:04 +0100, Arkadiusz Miskiewicz wrote:
On Monday 15 of December 2008, Timo Sirainen wrote:
On Mon, 2008-12-15 at 08:44 +0100, Arkadiusz Miskiewicz wrote:
Hi,
When user exceeds it's quota then dovecot can't create it's files and it's showing zero mails :( This also means that user is unable to delete it's own mails. Sounds like kind-of bug, right?
Dec 15 08:28:37 mbox1 dovecot: IMAP(xxx): open(/var/mail/xxx/dovecot-uidlist.lock) failed: Disk quota exceeded Dec 15 08:28:37 mbox1 dovecot: IMAP(kdudus): file_dotlock_create(/var/mail/xxx/dovecot-uidlist) failed: Disk quota exceeded
I don't think the mbox file should be modified if it's not locked. I suppose it's not very ideal either if user can't delete mails then, but at least the mailbox doesn't get corrupted.
I use maildirs only.
Oh, I didn't read the error message closely enough.
Anyway, you most likely don't really need to use dotlocks at all. Just make sure that your MDA uses fcntl locks and set mbox_write_locks=fcntl.
Will look. Right now I'm trying to move CONTROL to other fs where quota doesn't apply to see what will happen.
Yes, changing the CONTROL to non-quota partition is the only way to solve this for now. I suppose it should be possible to have the existing mails visible though, but mails not listed in dovecot-uidlist can't really be made visible.
On Monday 15 of December 2008, Timo Sirainen wrote:
On Mon, 2008-12-15 at 09:04 +0100, Arkadiusz Miskiewicz wrote:
On Monday 15 of December 2008, Timo Sirainen wrote:
On Mon, 2008-12-15 at 08:44 +0100, Arkadiusz Miskiewicz wrote:
Will look. Right now I'm trying to move CONTROL to other fs where quota doesn't apply to see what will happen.
Yes, changing the CONTROL to non-quota partition is the only way to solve this for now. I suppose it should be possible to have the existing mails visible though, but mails not listed in dovecot-uidlist can't really be made visible.
Done that and now I see a lot of " Expunged message reappeared, giving a new UID (old uid=10753, file=...)" ugh :-/
I guess now imap clients will see these as new messages?
-- Arkadiusz Miśkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/
On Monday 15 of December 2008, Timo Sirainen wrote:
On Mon, 2008-12-15 at 09:04 +0100, Arkadiusz Miskiewicz wrote:
On Monday 15 of December 2008, Timo Sirainen wrote:
On Mon, 2008-12-15 at 08:44 +0100, Arkadiusz Miskiewicz wrote:
Hi,
When user exceeds it's quota then dovecot can't create it's files and it's showing zero mails :( This also means that user is unable to delete it's own mails. Sounds like kind-of bug, right?
Dec 15 08:28:37 mbox1 dovecot: IMAP(xxx): open(/var/mail/xxx/dovecot-uidlist.lock) failed: Disk quota exceeded Dec 15 08:28:37 mbox1 dovecot: IMAP(kdudus): file_dotlock_create(/var/mail/xxx/dovecot-uidlist) failed: Disk quota exceeded
I don't think the mbox file should be modified if it's not locked. I suppose it's not very ideal either if user can't delete mails then, but at least the mailbox doesn't get corrupted.
I use maildirs only.
Oh, I didn't read the error message closely enough.
Anyway, you most likely don't really need to use dotlocks at all. Just make sure that your MDA uses fcntl locks and set mbox_write_locks=fcntl.
Will look. Right now I'm trying to move CONTROL to other fs where quota doesn't apply to see what will happen.
Done that and now I see a lot of " Expunged message reappeared, giving a new UID (old uid=10753, file=...)" ugh :-/
I guess now imap clients will see these as new messages?
Also ": IMAP(bo): /var/lib/dovecot/control/xxx/.INBOX/dovecot-uidlist: Duplicate file entry at line..."
Weird, these are fresly created control files and now they contain duplicates.
Last question, what permissions are needed for /var/lib/dovecot/control/ if it's used as CONTROL= and users use different uid/gids? Right now I have a+rwx which doesn't look nice and root:root 660 also didn't make dovecot happy.
Arkadiusz Miśkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/
On Mon, 2008-12-15 at 09:40 +0100, Arkadiusz Miskiewicz wrote:
Anyway, you most likely don't really need to use dotlocks at all. Just make sure that your MDA uses fcntl locks and set mbox_write_locks=fcntl.
Will look. Right now I'm trying to move CONTROL to other fs where quota doesn't apply to see what will happen.
Done that and now I see a lot of " Expunged message reappeared, giving a new UID (old uid=10753, file=...)" ugh :-/
I guess now imap clients will see these as new messages?
Also ": IMAP(bo): /var/lib/dovecot/control/xxx/.INBOX/dovecot-uidlist: Duplicate file entry at line..."
Weird, these are fresly created control files and now they contain duplicates.
So all your control files were being recreated, but index files weren't? I guess that confused Dovecot somehow. The error messages probably aren't exactly correct, but you created a broken condition anyway. :)
Last question, what permissions are needed for /var/lib/dovecot/control/ if it's used as CONTROL= and users use different uid/gids? Right now I have a+rwx which doesn't look nice and root:root 660 also didn't make dovecot happy.
I guess you could make it also +t. There's really no better way since the directories aren't created as root.
participants (2)
-
Arkadiusz Miskiewicz
-
Timo Sirainen