[Dovecot] Lazy expunge plugin - delete folder result error.
Hello
Is it a bug in lazy expunge plugin or am I missing something?
Dovecot v2.0.1 (c5111fb65b0b)
home = /mail/%Ld/%Ln mail_location = mdbox:/mail/%Ld/%Ln/mdbox
sources.list - debian (squeeze) .. deb http://xi.rename-it.nl/debian testing-auto/dovecot-2.0 main
Config changes
plugin { lazy_expunge = .EXPUNGED/ }
namespace { type = private separator = / prefix = inbox = yes list = yes }
# lazy_expunge namespace { type = private separator = / prefix = .EXPUNGED/
#location = mdbox:~/mdbox:MAILBOXDIR=expunged location = mdbox:~/expunged:MAILBOXDIR=expunged list = children subscriptions = no
When: location = mdbox:~/mdbox:MAILBOXDIR=expunged expunged folder gets created inside mail_location
delete/expunge email works delete/expunge folder works
When: location = mdbox:~/expunged:MAILBOXDIR=expunged expunged folder gets created inside mail home
delete/expunge email works delete/expunge folder DOES NOT WORK.
To reproduce the problem in outlook 2003:
Delete a messages in the Inbox. Then edit/purge deleted messages. Create a new folder, then delete the new folder... error prompt
Server Responded: "CANNOT] Can't rename mailboxes across specified storages."
Folder does not get unsubscribe/move
no core dump.
when try to delete the same folder again.
Server Responded: "NONEXISTENT] Mailbox was deleted under us"
Thanks
On Sun, 2010-08-29 at 19:31 -0700, Kui Zhang wrote:
home = /mail/%Ld/%Ln mail_location = mdbox:/mail/%Ld/%Ln/mdbox
When: location = mdbox:~/mdbox:MAILBOXDIR=expunged expunged folder gets created inside mail_location
delete/expunge email works delete/expunge folder works
This is correct. So why aren't you using it?..
When: location = mdbox:~/expunged:MAILBOXDIR=expunged expunged folder gets created inside mail home
delete/expunge email works delete/expunge folder DOES NOT WORK.
This is wrong.
Server Responded: "CANNOT] Can't rename mailboxes across specified storages."
This is expected with the wrong configuration.
when try to delete the same folder again.
Server Responded: "NONEXISTENT] Mailbox was deleted under us"
This is still a bug .. I'll see about fixing it.
On 31/08/2010 19:00, Timo Sirainen wrote:
On Sun, 2010-08-29 at 19:31 -0700, Kui Zhang wrote:
location = mdbox:~/mdbox:MAILBOXDIR=expunged
MAILBOXDIR: Ah, another directive which may appear in a location specification.
So far I can remember:
INBOX INDEX MAILBOXDIR
and I think there is at least one I can't remember.
Is there in the documentation a comprehensive list of these directives which may appear in a location specification, what they do, how their behaviour might differ between mailbox types etc. ?
Bill
On Tue, 2010-08-31 at 19:13 +0100, William Blunn wrote:
On 31/08/2010 19:00, Timo Sirainen wrote:
On Sun, 2010-08-29 at 19:31 -0700, Kui Zhang wrote:
location = mdbox:~/mdbox:MAILBOXDIR=expunged
MAILBOXDIR: Ah, another directive which may appear in a location specification.
This is a pretty special case that isn't probably needed anywhere else except mdbox + lazy-expunge combination.
So far I can remember:
INBOX INDEX MAILBOXDIR
and I think there is at least one I can't remember.
Is there in the documentation a comprehensive list of these directives which may appear in a location specification, what they do, how their behaviour might differ between mailbox types etc. ?
I guess they should be added to http://wiki2.dovecot.org/MailLocation some day. :)
On Tue, Aug 31, 2010 at 11:00 AM, Timo Sirainen <tss@iki.fi> wrote:
On Sun, 2010-08-29 at 19:31 -0700, Kui Zhang wrote:
home = /mail/%Ld/%Ln mail_location = mdbox:/mail/%Ld/%Ln/mdbox
When: location = mdbox:~/mdbox:MAILBOXDIR=expunged expunged folder gets created inside mail_location
delete/expunge email works delete/expunge folder works
This is correct. So why aren't you using it?..
When: location = mdbox:~/expunged:MAILBOXDIR=expunged expunged folder gets created inside mail home
delete/expunge email works delete/expunge folder DOES NOT WORK.
This is wrong.
Server Responded: "CANNOT] Can't rename mailboxes across specified storages."
This is expected with the wrong configuration.
when try to delete the same folder again.
Server Responded: "NONEXISTENT] Mailbox was deleted under us"
This is still a bug .. I'll see about fixing it.
Yes it is a bug, in my opinion. Location should allow any where within the mail home dir.
Based on the doc here we should be able to use mixed storage types mbox maildir etc
http://wiki.dovecot.org/Namespaces
if location is set to following, we get error prompt via client too.
location = maildir:~/mdbox/expunged
I have mail_location dynamically set in the database....we only convert few user to mdbox to start with. So mixed storage would be nice.
Forgot to mention.
If we select prefix. .EXPUNGE imap generate a core dump.
(no debugging symbols found)...done. (gdb) bt full #0 0x0000000000411cf8 in client_find_namespace (cmd=0xedd968, mailbox=0xee02b0 ".EXPUNGED", storage_name_r=0x7fffb0609248, mailbox_status_r=0x7fffb060927c) at imap-commands-util.c:52 ns = 0xedc300 storage_name = 0xee02b9 "" p = <value optimized out> storage_name_len = 0 #1 0x000000000040d692 in cmd_select_full (cmd=0xedd968, readonly=false) at cmd-select.c:372 client = 0xedd208 box = <value optimized out> ctx = <value optimized out> args = 0xee01c0 list_args = <value optimized out> status = <value optimized out> mailbox = 0xee02b0 ".EXPUNGED" storage_name = <value optimized out> ret = <value optimized out> __FUNCTION__ = "cmd_select_full" #2 0x00000000004101fd in client_command_input (cmd=0xedd968) at imap-client.c:660 client = 0xedd208 command = <value optimized out> __FUNCTION__ = "client_command_input" #3 0x00000000004102dd in client_command_input (cmd=0xedd968) at imap-client.c:710 client = 0xedd208 command = 0xeb89c8 __FUNCTION__ = "client_command_input" #4 0x0000000000410505 in client_handle_next_command (client=0xedd208) at imap-client.c:751 size = 25 #5 client_handle_input (client=0xedd208) at imap-client.c:763 _data_stack_cur_id = 3 ret = false remove_io = <value optimized out> handled_commands = false __FUNCTION__ = "client_handle_input" #6 0x0000000000410e2f in client_input (client=0xedd208) at imap-client.c:802 cmd = <value optimized out> output = 0xedd7e8 bytes = <value optimized out> __FUNCTION__ = "client_input" #7 0x00007ff0b11f18d5 in ?? () No symbol table info available. #8 0x0000000000eb2436 in ?? () No symbol table info available. #9 0x0000000100000002 in ?? () No symbol table info available. #10 0x000000000000000c in ?? () No symbol table info available. #11 0x00000000000068c3 in ?? () No symbol table info available. #12 0x0000000000000000 in ?? () No symbol table info available.
Thanks for checking. Let me know if you need more info.
KuiZ
On Tue, 2010-08-31 at 13:15 -0700, Kui Zhang wrote:
when try to delete the same folder again.
Server Responded: "NONEXISTENT] Mailbox was deleted under us"
This is still a bug .. I'll see about fixing it.
With the bug I meant only the above error. http://hg.dovecot.org/dovecot-2.0/rev/eecc2fda78c1 fixes that.
Based on the doc here we should be able to use mixed storage types mbox maildir etc
You can, but you can't rename mailboxes across different storages (which is what mailbox deletion does with lazy-expunge enabled). There's no way to do that operation easily and I think it's better to disallow that operation completely.
I have mail_location dynamically set in the database....we only convert few user to mdbox to start with. So mixed storage would be nice.
You can specify lazy-expunge location also dynamically in the database then, right?
If we select prefix. .EXPUNGE imap generate a core dump.
(gdb) bt full #0 0x0000000000411cf8 in client_find_namespace (cmd=0xedd968, mailbox=0xee02b0 ".EXPUNGED", storage_name_r=0x7fffb0609248, mailbox_status_r=0x7fffb060927c) at imap-commands-util.c:52
This should fix it: http://hg.dovecot.org/dovecot-2.0/rev/75611e9088b6
participants (3)
-
Kui Zhang
-
Timo Sirainen
-
William Blunn