Hi,
We are using dovecot for some times (a little before 1.0), for IMAP and
(a little for the moment) deliver.
We have ~20000 logins/day, Maildirs are over NFS (with indexes too, for
the moment...)
Up to 1.0.5, we sometime have this error in maillog:
________________________________________________________________________
Nov 1 13:55:41 tic dovecot: IMAP(login): file mail-index-view-sync.c:
line 666 (mail_index_view_sync_end): assertion failed:
(view->log_file_offset >= view->map->hdr.log_file_int_offset)
________________________________________________________________________
I didn't find any bits on google, nor on this list's archive...
# gdb (without debug, I may do it if required)
________________________________________________________________________
Program terminated with signal 6, Aborted.
Reading symbols from /usr/local/lib/libiconv.so.3...(no debugging
symbols found)...done.
Loaded symbols for /usr/local/lib/libiconv.so.3
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /libexec/ld-elf.so.1...(no debugging symbols
found)...done.
Loaded symbols for /libexec/ld-elf.so.1
#0 0x182ad51f in kill () from /lib/libc.so.6
(gdb) bt
#0 0x182ad51f in kill () from /lib/libc.so.6
#1 0x182ad4be in raise () from /lib/libc.so.6
#2 0x182ac0e8 in abort () from /lib/libc.so.6
#3 0x080a85da in i_set_failure_syslog ()
#4 0x080a80e1 in data_stack_deinit ()
#5 0x08092c97 in mail_index_view_sync_end ()
#6 0x0808229e in index_mailbox_sync_next ()
#7 0x0000001c in ?? ()
#8 0xbfbfe7e8 in ?? ()
#9 0x080d3140 in ?? ()
#10 0x080d8044 in ?? ()
#11 0x0000001c in ?? ()
#12 0xbfbfe828 in ?? ()
#13 0x08060761 in imap_sync_deinit ()
Previous frame inner to this frame (corrupt stack?)
____________________________________________________________________
dovecot -n
# 1.0.5: /usr/local/etc/dovecot.conf
ssl_ca_file: /etc/ssl/cacert.pem
ssl_cert_file: /etc/ssl/private/imaps.ec-marseille.fr.pem
ssl_key_file: /etc/ssl/private/imaps.ec-marseille.fr.key
disable_plaintext_auth: no
login_dir: /var/run/dovecot/login
login_executable: /usr/local/libexec/dovecot/imap-login
login_greeting: IMAP Centrale ready.
login_greeting_capability: yes
login_process_size: 64
login_processes_count: 20
login_max_processes_count: 512
valid_chroot_dirs: /users:/home
max_mail_processes: 2048
verbose_proctitle: yes
first_valid_uid: 1000
last_valid_uid: 55000
first_valid_gid: 999
last_valid_gid: 55000
mail_extra_groups: mail
mail_location: maildir:%h/Maildir/
mmap_disable: yes
lock_method: flock
maildir_stat_dirs: yes
maildir_copy_with_hardlinks: yes
mail_drop_priv_before_exec: yes
mail_executable: /usr/local/libexec/dovecot/imap_convert
imap_client_workarounds: delay-newmail outlook-idle netscape-eoh
tb-extra-mailbox-sep
auth default:
verbose: yes
worker_max_count: 60
passdb:
driver: pam
args: imap
passdb:
driver: ldap
args: /usr/local/etc/dovecot-ldap.conf
userdb:
driver: passwd
userdb:
driver: ldap
args: /usr/local/etc/dovecot-uldap.conf
socket:
type: listen
client:
path: /var/spool/postfix/private/auth
mode: 432
user: postfix
group: postfix
master:
path: /var/run/dovecot/auth-master
mode: 384
plugin:
quota: fs
___________________________________________________________________
# dovecot-ldap.conf (dovecot-uldap.conf is a symlink)
___________________________________________________________________
hosts = ldapr.serv.int:389 ldap:389
dn = <our binddn>
dnpass = <our pass>
auth_bind = yes
ldap_version = 3
base = ou=People,<our_basedn>
deref = never
scope = onelevel
user_attrs = homeDirectory=home,uidNumber=uid,gidNumber=gid,uid=system_user
user_filter
(&(objectClass=inetLocalMailRecipient)(|(uid=%u)(mail=%u)(mail=%n@<our_primary_domain>)))
pass_attrs = uid=user
pass_filter
(&(objectClass=inetLocalMailRecipient)(|(uid=%u)(mail=%u)(mail=%n@<our_primary_domain>)))
____________________________________________________________________
--
___________________________________________________________
/ Geoffroy DESVERNAY | \
/\ `Service info` | Tel: (+33|0)4 91 05 45 24 /\
\/ Ecole Centrale de Marseille | Fax: (+33|0)4 91 05 45 98 \/
\ (ex-EGIM) | Mail: dgeo at ec-marseille.fr /
-----------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: OpenPGP digital signature
URL:
<http://dovecot.org/pipermail/dovecot/attachments/20071102/d9032dbb/attachment-0002.bin>
On Fri, 2007-11-02 at 15:05 +0100, Geoffroy Desvernay wrote:> We are using dovecot for some times (a little before 1.0), for IMAP and > (a little for the moment) deliver. > > We have ~20000 logins/day, Maildirs are over NFS (with indexes too, for > the moment...)With more than one server accessing the same maildir at around the same time? See "attribute cache problems" (and the rest of the page as well) in http://wiki.dovecot.org/NFS -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part URL: <http://dovecot.org/pipermail/dovecot/attachments/20071102/f3ba82e3/attachment-0002.bin>
On Fri, Nov 02, 2007 at 05:52:49PM +0200, Timo Sirainen wrote: On Fri, 2007-11-02 at 15:05 +0100, Geoffroy Desvernay wrote: > We are using dovecot for some times (a little before 1.0), for IMAP and > (a little for the moment) deliver. > > We have ~20000 logins/day, Maildirs are over NFS (with indexes too, for > the moment...) With more than one server accessing the same maildir at around the same time? See "attribute cache problems" (and the rest of the page as well) in http://wiki.dovecot.org/NFS I'll bite, I keep hearing mention of "each user is assigned a specific computer which is used whenever possible" and I'm willing to try it out so my indexes are safe. The part where I get stuck is the "whenever possible". I've looked at using perdition and/or dovecot, but both seem only offer a single IP to connect to per user, and the only workarounds I've heard of is to have an additional process monitor the imap servers and modify the mappings when a server is down. Is there a simpler way to have a proxy attempt a list of servers for each user? I would just point it back at my hardware load balancer in essence, but for that to work, the server originating the connection cannot host the VIP of the target otherwise the connection will stay local since the VIP would be local (I don't have my traffic flow through the load balancer physically). I could put a bunch of "every server but me" VIPs in the LB, one for each server, but thats a messy hack. I've thought of a handful of different ways I could have the connections go through my planned 4 mail servers but none so far give me complete load balancing, automatic failover, and simple enough to make it worth trying to have only one copy of indexes. Anyone have any input? Thanks