Re: doveadm expunge no longer works

2015-12-31 Thread Fabian Groffen
Please ignore, this appears to be fixed by
6971937a6f3e93844dbd43bdbe903628e21a9422 [1].

Thanks,
Fabian

[1] 
https://github.com/dovecot/core/commit/6971937a6f3e93844dbd43bdbe903628e21a9422.patch

On 31-12-2015 17:28:34 +0100, Fabian Groffen wrote:
> Heya,
> 
> Just upgraded from 2.2.19 to dovecot-2.2.21 and noticed expunging mail
> no longer works.
> 
> # doveadm expunge -u theuser MAILBOX spam all
> Fatal: expunge: To avoid accidents, each branch in search query must
> contain something else besides MAILBOX (e.g. just add "all" if you want
> everything)
> 
> Clearly, I've already got all in there, so I tried capitalising, etc.
> Looking at the code, I see expunge_search_args_is_msgset_or_ok
> apparently is failing.  I'm wondering if this function [1] is actually doing 
> what it is supposed to do, since it uses return, instead a var to figure out 
> whether it is ok or not.  In my case, just because it finds MAILBOX it 
> returns without looking whether there is any further arguments.
> 
> Or am I missing the point here (and how should I expunge a folder of
> mail?)
> 
> Thanks,
> Fabian
> 
> [1] 
> https://github.com/dovecot/core/blob/6971937a6f3e93844dbd43bdbe903628e21a9422/src/doveadm/doveadm-mail-expunge.c#L148
> 
> -- 
> Fabian Groffen
> Gentoo on a different level



-- 
Fabian Groffen
Gentoo on a different level


signature.asc
Description: Digital signature


doveadm expunge no longer works

2015-12-31 Thread Fabian Groffen
Heya,

Just upgraded from 2.2.19 to dovecot-2.2.21 and noticed expunging mail
no longer works.

# doveadm expunge -u theuser MAILBOX spam all
Fatal: expunge: To avoid accidents, each branch in search query must
contain something else besides MAILBOX (e.g. just add "all" if you want
everything)

Clearly, I've already got all in there, so I tried capitalising, etc.
Looking at the code, I see expunge_search_args_is_msgset_or_ok
apparently is failing.  I'm wondering if this function [1] is actually doing 
what it is supposed to do, since it uses return, instead a var to figure out 
whether it is ok or not.  In my case, just because it finds MAILBOX it returns 
without looking whether there is any further arguments.

Or am I missing the point here (and how should I expunge a folder of
mail?)

Thanks,
Fabian

[1] 
https://github.com/dovecot/core/blob/6971937a6f3e93844dbd43bdbe903628e21a9422/src/doveadm/doveadm-mail-expunge.c#L148

-- 
Fabian Groffen
Gentoo on a different level


signature.asc
Description: Digital signature


Re: [Dovecot] dsync-local crashes due to assertion failures

2013-12-30 Thread Fabian Groffen
On 08-12-2013 16:26:15 +0100, Fabian Groffen wrote:
> I have two servers that share nothing, running dovecot version 2.2.9.
> The first server hosts the original mail base, which I want to sync
> using dovecot to the second server.  With some trial and error I managed
> to get synchronisation running using tcp sockets.  Now for some accounts
> I see dsync-local crashing on the server that has the original mail base
> (which is still the only of the two that receives new mail).  The log
> shows:
> 
> Dec  8 03:13:14 zeus dovecot: dsync-local(someuser): Panic: file mail-index-tr
> ansaction-export.c: line 203 (log_append_ext_hdr_update): assertion failed: 
> (u32
> .offset + u32.size <= ext_hdr_size)

Turns out I didn't remove all index files.  After I did (dovecot.index +
dovecot.list.index) the assertion has gone away.  Interesting side-note:
after removal of the indices, some of my mailboxes showed new emails
from long ago, that I hadn't seen previously.
Now, from the first look and sizes, synchronisation seems to have
succeeded after a night.


-- 
Fabian Groffen
Gentoo on a different level


signature.asc
Description: Digital signature


[Dovecot] dsync-local crashes due to assertion failures

2013-12-08 Thread Fabian Groffen
Hi,

I have two servers that share nothing, running dovecot version 2.2.9.
The first server hosts the original mail base, which I want to sync
using dovecot to the second server.  With some trial and error I managed
to get synchronisation running using tcp sockets.  Now for some accounts
I see dsync-local crashing on the server that has the original mail base
(which is still the only of the two that receives new mail).  The log
shows:

Dec  8 03:13:14 zeus dovecot: dsync-local(someuser): Panic: file mail-index-tr
ansaction-export.c: line 203 (log_append_ext_hdr_update): assertion failed: (u32
.offset + u32.size <= ext_hdr_size)
Dec  8 03:13:14 zeus dovecot: dsync-local(someuser): Error: Raw backtrace: 
/usr/lib64/dovecot/libdovecot.so.0(+0x70ea0) [0x7f3ee4137ea0] -> 
/usr/lib64/dovecot/libdovecot.so.0(+0x70efe) [0x7f3ee4137efe] -> 
/usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) [0x7f3ee40ebd2c] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(mail_index_transaction_export+0xbed) 
[0x7f3ee442e89d] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x89104) 
[0x7f3ee442d104] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(mail_index_transaction_commit_full+0xb2)
 [0x7f3ee442d592] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(mail_index_transaction_commit+0xc) 
[0x7f3ee442d63c] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(mail_index_sync_commit+0xb6) 
[0x7f3ee44372b6] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x335d6) 
[0x7f3ee43d75d6] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x328bc) 
[0x7f3ee43d68bc] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x32d83) 
[0x7f3ee43d6d83] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(maildir_storage_sync_init+0xd9) 
[0x7f3ee43d7199] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(mailbox_sync_init+0x2e) 
[0x7f3ee43e7f2e] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(mailbox_sync+0x27) [0x7f3ee43e8047] 
-> dovecot/doveadm-server(dsync_brain_master_send_mailbox+0xcf) [0x41f17f] -> 
dovecot/doveadm-server(dsync_brain_run+0x2c8) [0x41d738] -> 
dovecot/doveadm-server() [0x41dd70] -> dovecot/doveadm-server() [0x42eda0] -> 
/usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x36) [0x7f3ee41495a6] -> 
/usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0xbd) [0x7f3ee414a62d] 
-> /usr/lib64/dovecot/libdovecot.so.0(io_loop_run+0x38) [0x7f3ee4149008] -> 
dovecot/doveadm-server() [0x41bb6c] -> dovecot/doveadm-server() [0x40ee3b] -> 
dovecot/doveadm-server() [0x419581] -> 
/usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x36)
 [0x7f3ee41495a6] -> 
/usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0xbd) [0x7f3ee414a62d] 
-> /usr/lib64/dovecot/libdovecot.so.0(io_loop_run+0x38) [0x7f3ee4149008] -> 
/usr/lib64/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f3ee40f1643]
Dec  8 03:13:14 zeus dovecot: dsync-local(someuser): Fatal: master: 
service(doveadm): child 14116 killed with signal 6 (core dumps disabled)

It seems that despite these crashes, some data is being transferred.
Newer accounts seem not to have problems, this happens with older
accounts only, for as far as I can see.  I tried removing the index
files, but that didn't seem to help.

Any ideas on what I can do here?  Both servers are configured to use
maildir storage.

Thanks,
Fabian

-- 
Fabian Groffen
Gentoo on a different level


signature.asc
Description: Digital signature