[Dovecot] ZFS Index corruption and Connection reset by peer

Philippe Chevalier chevalier at dspnet.fr.eu.org
Tue Jun 8 15:20:00 EEST 2010


I'm currently using dovecot 1.2.11 on FreeBSD 8.0 with ZFS filesystems.

So far, so good, it works quite nicely, but I have a couple glitches.

Each user has his own zfs partition, mounted on /home/<user> (easier
to set per user quotas) and mail is stored in their home.

 From day one, when people check their mail via imap, a lot of indexes
corruption occured :

dovecot: IMAP(<user>@domain.org): Corrupted transaction log file /home/<user>/Mail/Maildir/INBOX/dovecot.index.log seq 13: record size too small +(type=0x0, offset=5560, size=0) (sync_offset=5652)
dovecot: IMAP(<user>@domain.org): fscking index file /home/<user>/Mail/Maildir/INBOX/dovecot.index
dovecot: IMAP(<user>@domain.org): /home/<user>/Mail/Maildir/INBOX/dovecot.index log position went backwards (13,132 < 13,5560)
dovecot: IMAP(<user>@domain.org): Transaction log file /home/<user>/Mail/Maildir/INBOX/dovecot.index.log: marked corrupted

etc, etc...

After some digging, I "solved" this problem with mmap_disable = yes in
dovecot.conf. Index corruption doesn't seem to occur anymore.

Is this normal? I thought this problem occured only on NFS filesystem
and eventually on old versions of ZFS. Hasn't this been fixed?

Is there an option in ZFS that would allow mmap calls without
corruption. Has it something to do with compression ?

The options of the zfs filesystem are :

zhome/username  type                  filesystem             -
zhome/username  creation              Thu Mar 18 11:10 2010  -
zhome/username  used                  750M                   -
zhome/username  available             61.0G                  -
zhome/username  referenced            750M                   -
zhome/username  compressratio         1.20x                  -
zhome/username  mounted               yes                    -
zhome/username  quota                 none                   default
zhome/username  reservation           none                   default
zhome/username  recordsize            128K                   default
zhome/username  mountpoint            /usr/home/username     inherited from zhome
zhome/username  sharenfs              off                    default
zhome/username  checksum              on                     default
zhome/username  compression           lzjb                   inherited from zhome
zhome/username  atime                 off                    inherited from zhome
zhome/username  devices               on                     default
zhome/username  exec                  on                     default
zhome/username  setuid                on                     default
zhome/username  readonly              off                    default
zhome/username  jailed                off                    default
zhome/username  snapdir               hidden                 default
zhome/username  aclmode               groupmask              default
zhome/username  aclinherit            restricted             default
zhome/username  canmount              on                     default
zhome/username  shareiscsi            off                    default
zhome/username  xattr                 off                    temporary
zhome/username  copies                1                      default
zhome/username  version               3                      -
zhome/username  utf8only              off                    -
zhome/username  normalization         none                   -
zhome/username  casesensitivity       sensitive              -
zhome/username  vscan                 off                    default
zhome/username  nbmand                off                    default
zhome/username  sharesmb              off                    default
zhome/username  refquota              none                   default
zhome/username  refreservation        none                   default
zhome/username  primarycache          all                    default
zhome/username  secondarycache        all                    default
zhome/username  usedbysnapshots       0                      -
zhome/username  usedbydataset         750M                   -
zhome/username  usedbychildren        0                      -
zhome/username  usedbyrefreservation  0                      -

Other problem, that I have been unable to solve so far, is that a lot of
entries show up in my logs about :

dovecot: imap-login: net_disconnect() failed: Connection reset by peer

It doesn't seem to have any adverse effect, except it's filling up the
logs. It seem to appear when a client closes the imap connection? Is
there a
way to suppress this error?



More information about the dovecot mailing list