[Dovecot] Lazy expunge plugin - delete folder result error.

Kui Zhang kuizhang at gmail.com
Tue Aug 31 23:15:41 EEST 2010


On Tue, Aug 31, 2010 at 11:00 AM, Timo Sirainen <tss at 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


More information about the dovecot mailing list