[Dovecot] v2.0.6 released
http://dovecot.org/releases/2.0/dovecot-2.0.6.tar.gz http://dovecot.org/releases/2.0/dovecot-2.0.6.tar.gz.sig
* Pre-login CAPABILITY includes IDLE again. Mainly to make Blackberry
servers happy.
* auth: auth_cache_negative_ttl default was 0 in earlier v2.0.x, but it
was supposed to be 1 hour as in v1.x. Changed it back to 1h.
If you want it disabled, make sure doveconf shows it as 0.
+ dbox: Added support for saving mail attachments to external files,
with also support for single instance storage. This feature hasn't
had much testing yet, so be careful with it.
+ doveadm: Added import command for importing mails from other storages.
+ Reduced NFS I/O operations for index file accesses
+ dbox, Maildir: When copying messages, copy also already cached fields
from dovecot.index.cache
+ mdbox: Added mdbox_preallocate_space setting (Linux+ext3/XFS only)
- Maildir: LDA/LMTP assert-crashed sometimes when saving a mail.
- Fixed leaking fds when writing to dovecot.mailbox.log.
- Fixed rare dovecot.index.cache corruption
- IMAP: SEARCH YOUNGER/OLDER wasn't working correctly
On Thu, Oct 21, 2010 at 9:14 PM, Timo Sirainen tss@iki.fi wrote:
http://dovecot.org/releases/2.0/dovecot-2.0.6.tar.gz http://dovecot.org/releases/2.0/dovecot-2.0.6.tar.gz.sig
* Pre-login CAPABILITY includes IDLE again. Mainly to make
Blackberry servers happy. * auth: auth_cache_negative_ttl default was 0 in earlier v2.0.x, but it was supposed to be 1 hour as in v1.x. Changed it back to 1h. If you want it disabled, make sure doveconf shows it as 0.
+ dbox: Added support for saving mail attachments to external files, with also support for single instance storage. This feature hasn't had much testing yet, so be careful with it. + doveadm: Added import command for importing mails from other
storages. + Reduced NFS I/O operations for index file accesses + dbox, Maildir: When copying messages, copy also already cached fields from dovecot.index.cache + mdbox: Added mdbox_preallocate_space setting (Linux+ext3/XFS only) - Maildir: LDA/LMTP assert-crashed sometimes when saving a mail. - Fixed leaking fds when writing to dovecot.mailbox.log. - Fixed rare dovecot.index.cache corruption - IMAP: SEARCH YOUNGER/OLDER wasn't working correctly
And I am the 2nd person ever to run dovecot-2.0.6 after Timo!!
Running on my brand new PC-BSD-8.1 amd64 server after a successful compile with mbdox.
PS: Timo, in the options shown when one runs the configure script, should the dbox option be removed?
[root@gw] ~wash/Tools/Dovecot/dovecot-2.0/dovecot-2.0.6# ./configure --help | grep dbox (maildir mbox dbox mdbox cydir)
For the fun of it, i used --with-storages="maildir mbox dbox mdbox cydir"
(not intending to use all, but just to see) and this led make
to fail with
something about dbox, so I simply removed it and got a successful compile.
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254733744121/+254722743223
Damn!!
On 2010-10-21 4:52 PM, Odhiambo Washington wrote:
For the fun of it, i used --with-storages="maildir mbox dbox mdbox cydir" (not intending to use all, but just to see) and this led
make
to fail with something about dbox, so I simply removed it and got a successful compile.
Its not dbox any more, its sdbox (for single dbox) and mdbox (for multi-dbox)...
So if you wanted to compile with support for all, try adding sdbox to the rest and you should be good to go...
--
Best regards,
Charles
On 21.10.2010, at 21.52, Odhiambo Washington wrote:
PS: Timo, in the options shown when one runs the configure script, should the dbox option be removed?
[root@gw] ~wash/Tools/Dovecot/dovecot-2.0/dovecot-2.0.6# ./configure --help | grep dbox (maildir mbox dbox mdbox cydir)
Yeah, it should have been sdbox. Fixed now in hg.
For the fun of it, i used --with-storages="maildir mbox dbox mdbox cydir" (not intending to use all, but just to see) and this led
make
to fail with something about dbox, so I simply removed it and got a successful compile.
Hmm. I think it still should have worked.. Well, not sure.
On Fri, Oct 22, 2010 at 12:09 AM, Timo Sirainen tss@iki.fi wrote:
On 21.10.2010, at 21.52, Odhiambo Washington wrote:
PS: Timo, in the options shown when one runs the configure script, should the dbox option be removed?
[root@gw] ~wash/Tools/Dovecot/dovecot-2.0/dovecot-2.0.6# ./configure --help | grep dbox (maildir mbox dbox mdbox cydir)
Yeah, it should have been sdbox. Fixed now in hg.
For the fun of it, i used --with-storages="maildir mbox dbox mdbox cydir" (not intending to use all, but just to see) and this led
make
to fail with something about dbox, so I simply removed it and got a successful compile.Hmm. I think it still should have worked.. Well, not sure.
I've taken the liberty to reproduce the failure:
<cut> mv -f .deps/imap-commands-util.Tpo .deps/imap-commands-util.Po gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-settings -I../../src/lib-dict -I../../src/lib-master -I../../src/lib-mail -I../. ./src/lib-imap -I../../src/lib-index -I../../src/lib-storage -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-a rith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -MT imap-expunge.o -MD -MP -MF .deps/imap-expunge.Tpo -c -o imap-expun ge.o imap-expunge.c mv -f .deps/imap-expunge.Tpo .deps/imap-expunge.Po gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-settings -I../../src/lib-dict -I../../src/lib-master -I../../src/lib-mail -I../. ./src/lib-imap -I../../src/lib-index -I../../src/lib-storage -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-a rith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -MT imap-fetch.o -MD -MP -MF .deps/imap-fetch.Tpo -c -o imap-fetch.o i map-fetch.c mv -f .deps/imap-fetch.Tpo .deps/imap-fetch.Po gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-settings -I../../src/lib-dict -I../../src/lib-master -I../../src/lib-mail -I../. ./src/lib-imap -I../../src/lib-index -I../../src/lib-storage -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-a rith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -MT imap-fetch-body.o -MD -MP -MF .deps/imap-fetch-body.Tpo -c -o imap -fetch-body.o imap-fetch-body.c mv -f .deps/imap-fetch-body.Tpo .deps/imap-fetch-body.Po gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-settings -I../../src/lib-dict -I../../src/lib-master -I../../src/lib-mail -I../. ./src/lib-imap -I../../src/lib-index -I../../src/lib-storage -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-a rith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -MT imap-search.o -MD -MP -MF .deps/imap-search.Tpo -c -o imap-search. o imap-search.c mv -f .deps/imap-search.Tpo .deps/imap-search.Po gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-settings -I../../src/lib-dict -I../../src/lib-master -I../../src/lib-mail -I../. ./src/lib-imap -I../../src/lib-index -I../../src/lib-storage -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-a rith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -MT imap-search-args.o -MD -MP -MF .deps/imap-search-args.Tpo -c -o im ap-search-args.o imap-search-args.c mv -f .deps/imap-search-args.Tpo .deps/imap-search-args.Po gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-settings -I../../src/lib-dict -I../../src/lib-master -I../../src/lib-mail -I../. ./src/lib-imap -I../../src/lib-index -I../../src/lib-storage -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-a rith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -MT imap-settings.o -MD -MP -MF .deps/imap-settings.Tpo -c -o imap-set tings.o imap-settings.c mv -f .deps/imap-settings.Tpo .deps/imap-settings.Po gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-settings -I../../src/lib-dict -I../../src/lib-master -I../../src/lib-mail -I../. ./src/lib-imap -I../../src/lib-index -I../../src/lib-storage -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-a rith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -MT imap-status.o -MD -MP -MF .deps/imap-status.Tpo -c -o imap-status. o imap-status.c mv -f .deps/imap-status.Tpo .deps/imap-status.Po gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-settings -I../../src/lib-dict -I../../src/lib-master -I../../src/lib-mail -I../. ./src/lib-imap -I../../src/lib-index -I../../src/lib-storage -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-a rith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -MT imap-sync.o -MD -MP -MF .deps/imap-sync.Tpo -c -o imap-sync.o imap -sync.c mv -f .deps/imap-sync.Tpo .deps/imap-sync.Po gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-settings -I../../src/lib-dict -I../../src/lib-master -I../../src/lib-mail -I../. ./src/lib-imap -I../../src/lib-index -I../../src/lib-storage -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-a rith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -MT mail-storage-callbacks.o -MD -MP -MF .deps/mail-storage-callbacks. Tpo -c -o mail-storage-callbacks.o mail-storage-callbacks.c mv -f .deps/mail-storage-callbacks.Tpo .deps/mail-storage-callbacks.Po gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-settings -I../../src/lib-dict -I../../src/lib-master -I../../src/lib-mail -I../. ./src/lib-imap -I../../src/lib-index -I../../src/lib-storage -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-a rith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c mv -f .deps/main.Tpo .deps/main.Po /bin/sh ../../libtool --tag=CC --mode=link gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-s ubscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -export-dynamic -o imap cmd-append.o cmd-capability.o cmd-cancelupdate.o cmd-check .o cmd-close.o cmd-copy.o cmd-create.o cmd-delete.o cmd-enable.o cmd-examine.o cmd-expunge.o cmd-fetch.o cmd-id.o cmd-idle.o cmd-list.o cmd-logou t.o cmd-lsub.o cmd-namespace.o cmd-noop.o cmd-rename.o cmd-search.o cmd-select.o cmd-sort.o cmd-status.o cmd-store.o cmd-subscribe.o cmd-thread.o cmd-uid.o cmd-unselect.o cmd-unsubscribe.o cmd-x-cancel.o imap-client.o imap-commands.o imap-commands-util.o imap-expunge.o imap-fetch.o imap-fe tch-body.o imap-search.o imap-search-args.o imap-settings.o imap-status.o imap-sync.o mail-storage-callbacks.o main.o ../../src/lib-storage/libdo vecot-storage.la ../../src/lib-dovecot/libdovecot.la -export-dynamic -lrt libtool: link: gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-func tion-cast -Wstrict-aliasing=2 -o .libs/imap cmd-append.o cmd-capability.o cmd-cancelupdate.o cmd-check.o cmd-close.o cmd-copy.o cmd-create.o cmd- delete.o cmd-enable.o cmd-examine.o cmd-expunge.o cmd-fetch.o cmd-id.o cmd-idle.o cmd-list.o cmd-logout.o cmd-lsub.o cmd-namespace.o cmd-noop.o c md-rename.o cmd-search.o cmd-select.o cmd-sort.o cmd-status.o cmd-store.o cmd-subscribe.o cmd-thread.o cmd-uid.o cmd-unselect.o cmd-unsubscribe.o cmd-x-cancel.o imap-client.o imap-commands.o imap-commands-util.o imap-expunge.o imap-fetch.o imap-fetch-body.o imap-search.o imap-search-args.o imap-settings.o imap-status.o imap-sync.o mail-storage-callbacks.o main.o -Wl,--export-dynamic ../../src/lib-storage/.libs/libdovecot-storage.s o /usr/home/wash/Tools/Dovecot/dovecot-2.0/dovecot-2.0.6/src/lib-dovecot/.libs/libdovecot.so ../../src/lib-dovecot/.libs/libdovecot.so -lrt -Wl,- rpath -Wl,/opt/dovecot2/lib/dovecot ../../src/lib-storage/.libs/libdovecot-storage.so: undefined reference to `dbox_storage' gmake[3]: *** [imap] Error 1 gmake[3]: Leaving directory `/usr/home/wash/Tools/Dovecot/dovecot-2.0/dovecot-2.0.6/src/imap' gmake[2]: *** [all-recursive] Error 1 gmake[2]: Leaving directory `/usr/home/wash/Tools/Dovecot/dovecot-2.0/dovecot-2.0.6/src' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/usr/home/wash/Tools/Dovecot/dovecot-2.0/dovecot-2.0.6' gmake: *** [all] Error 2 [root@gw] ~wash/Tools/Dovecot/dovecot-2.0/dovecot-2.0.6# </cut>
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254733744121/+254722743223
Damn!!
Timo Sirainen put forth on 10/21/2010 4:10 PM:
On 21.10.2010, at 19.14, Timo Sirainen wrote:
- mdbox: Added mdbox_preallocate_space setting (Linux+ext3/XFS only)
ext4 of course, not ext3. Also requires Linux kernel v2.6.23 or newer and glibc 2.10 or newer.
Is this available for mbox or just mdbox? If mdbox only, why not mbox also?
-- Stan
On Fri, 22 Oct 2010 06:02:08 -0500 Stan Hoeppner stan@hardwarefreak.com articulated:
Timo Sirainen put forth on 10/21/2010 4:10 PM:
On 21.10.2010, at 19.14, Timo Sirainen wrote:
- mdbox: Added mdbox_preallocate_space setting (Linux+ext3/XFS only)
ext4 of course, not ext3. Also requires Linux kernel v2.6.23 or newer and glibc 2.10 or newer.
Is this available for mbox or just mdbox? If mdbox only, why not mbox also?
Off-topic perhaps; however, the latest linux kernel has just been released: http://kernelnewbies.org/Linux_2_6_36, if anyone seriously cares.
-- Jerry ✌ Dovecot.user@seibercom.net
Disclaimer: off-list followups get on-list replies or get ignored. Please do not ignore the Reply-To header.
"For those that are uninsured, many of the uninsured are able-bodied, capable people capable of buying insurance choose not to do so."
George W. Bush November 10, 1999 Comments made during an interview with WMUR in Manchester, New Hampshire.
On Fri, 2010-10-22 at 06:02 -0500, Stan Hoeppner wrote:
Timo Sirainen put forth on 10/21/2010 4:10 PM:
On 21.10.2010, at 19.14, Timo Sirainen wrote:
- mdbox: Added mdbox_preallocate_space setting (Linux+ext3/XFS only)
ext4 of course, not ext3. Also requires Linux kernel v2.6.23 or newer and glibc 2.10 or newer.
Is this available for mbox or just mdbox? If mdbox only, why not mbox also?
It's only for mdbox because they have a known upper size (mdbox_rotate_size). With mbox the only possibility would be to let admin specify how large the files should be preallocated to. And how would the admin know? And should different mailboxes have different preallocated sizes? For example "Drafts" mailbox is unlikely to ever grow very large. And in any case, if you care about performance mbox isn't really the best choice.
Timo Sirainen put forth on 10/25/2010 10:25 AM:
On Fri, 2010-10-22 at 06:02 -0500, Stan Hoeppner wrote:
Timo Sirainen put forth on 10/21/2010 4:10 PM:
On 21.10.2010, at 19.14, Timo Sirainen wrote:
- mdbox: Added mdbox_preallocate_space setting (Linux+ext3/XFS only)
ext4 of course, not ext3. Also requires Linux kernel v2.6.23 or newer and glibc 2.10 or newer.
Is this available for mbox or just mdbox? If mdbox only, why not mbox also?
It's only for mdbox because they have a known upper size (mdbox_rotate_size). With mbox the only possibility would be to let admin specify how large the files should be preallocated to. And how would the admin know? And should different mailboxes have different preallocated sizes? For example "Drafts" mailbox is unlikely to ever grow very large. And in any case, if you care about performance mbox isn't really the best choice.
Is it still the best choice performer WRT full text search? I use fts squat, but it seems whenever I do a body search of an IMAP folder that the index is cold, thus I don't often get the benefit of the index. Would maildir, dbox, or mdbox give better performance here with a cold index? Full text search is the main reason I've stayed with mbox. I've never noticed any performance issues (not after you recommended I enable very_dirty_syncs that is).
That's all kinda off topic though. The main reason I asked about preallocation in first place was merely to limit file fragmentation. As I understand it, some types of preallocation can be each time the file is written, in essence extending the tail at the end of the file. Something like this won't eliminate fragmentation, but it should lessen the number of fragments as the file grows. I'm not currently running into performance problems due to fragmentation, but it could/will happen at some point. Currently I'm running xfs_fsr twice a week via cron to keep fragmentation at bay. Those running mbox on any other filesystem would benefit from this limited fragmentation as no other FS has a working online defragmenter.
Anyhow, it sounds like even if it could somehow be done with mbox it would be pretty difficult to implement, and not provide much ROI as apparently few OPs still use mbox.
It's really cool to hear that preallocation should work very well WRT eliminating fragmentation of mdbox as you said their is a maximum file size. This seems like a perfect fit.
-- Stan
On 25.10.2010, at 23.42, Stan Hoeppner wrote:
It's only for mdbox because they have a known upper size (mdbox_rotate_size). With mbox the only possibility would be to let admin specify how large the files should be preallocated to. And how would the admin know? And should different mailboxes have different preallocated sizes? For example "Drafts" mailbox is unlikely to ever grow very large. And in any case, if you care about performance mbox isn't really the best choice.
Is it still the best choice performer WRT full text search?
mdbox with the preallocation enabled would probably perform better.
I use fts squat, but it seems whenever I do a body search of an IMAP folder that the index is cold, thus I don't often get the benefit of the index.
Yeah, Squat's indexing speed is way too slow. It needs some kind of a redesign there.
Would maildir, dbox, or mdbox give better performance here with a cold index?
The performance problem is with Squat itself, not with the mailbox format.
Full text search is the main reason I've stayed with mbox. I've never noticed any performance issues (not after you recommended I enable very_dirty_syncs that is).
The main problem I see with mbox is that it's rather fragile and I know there are some bugs in Dovecot causing it to crash in some situations with mbox.
Anyhow, it sounds like even if it could somehow be done with mbox it would be pretty difficult to implement, and not provide much ROI as apparently few OPs still use mbox.
Right. If someone wants to do it, it should be somewhat easy to patch it in :)
participants (5)
-
Charles Marcus
-
Jerry
-
Odhiambo Washington
-
Stan Hoeppner
-
Timo Sirainen