Rich at Whidbey Telecom
2007-Aug-29 16:04 UTC
[Dovecot] Bug? Expunging Symlinked Maildir w/ Lazy_expunge Enabled
Hi all, Using Dovecot 1.0.3 on RedHat Enterprise 5 (kernel 2.6.18-8.1.6.el5PAE), and NFS storage, we symlinked a Maildir folder: /mailstore/user/Maildir/.Junk -> /junkstore/user/Junkmaildir Everything works fine, until we try to expunge, which produces: A04 NO BUG: Unknown internal error This only happens if "lazy_expunge" is enabled: mail_plugins = quota imap_quota acl lazy_expunge lazy_expunge = .EXPUNGED/ .EXPUNGED/ .EXPUNGED/ Lazy_expunge works great on non-symlinked folders. We tried version 1.1 alpha2, which actually crashes in this scenario. The only fix we've found is to disable "lazy_expunge". Attached is our "dovecot -n" config. Anyone have an idea what might be causing this or a workaround? Thanks! Rich richs at whidbey.net -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: dovecot-config.txt URL: <http://dovecot.org/pipermail/dovecot/attachments/20070829/5a676a3f/attachment-0002.txt>
Timo Sirainen
2007-Sep-09 04:15 UTC
[Dovecot] Bug? Expunging Symlinked Maildir w/ Lazy_expunge Enabled
On Wed, 2007-08-29 at 09:04 -0700, Rich at Whidbey Telecom wrote:> Hi all, > > Using Dovecot 1.0.3 on RedHat Enterprise 5 (kernel 2.6.18-8.1.6.el5PAE), > and NFS storage, we symlinked a Maildir folder: > > /mailstore/user/Maildir/.Junk -> /junkstore/user/Junkmaildir > > Everything works fine, until we try to expunge, which produces:You really mean EXPUNGE, not DELETE command?> A04 NO BUG: Unknown internal errorI couldn't reproduce this myself. I can't also think of why it would work any differently with symlinks. Does it happen if you don't use acl or quota plugins? -------------- 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/20070909/bfd5df79/attachment-0002.bin>
Rich at Whidbey Telecom
2007-Sep-10 21:05 UTC
[Dovecot] Bug? Expunging Symlinked Maildir w/ Lazy_expunge Enabled
Timo Sirainen wrote:> On Wed, 2007-08-29 at 09:04 -0700, Rich at Whidbey Telecom wrote: >> Hi all, >> >> Using Dovecot 1.0.3 on RedHat Enterprise 5 (kernel 2.6.18-8.1.6.el5PAE), >> and NFS storage, we symlinked a Maildir folder: >> >> /mailstore/user/Maildir/.Junk -> /junkstore/user/Junkmaildir >> >> Everything works fine, until we try to expunge, which produces: > > You really mean EXPUNGE, not DELETE command? > >> A04 NO BUG: Unknown internal error > > I couldn't reproduce this myself. I can't also think of why it would > work any differently with symlinks. Does it happen if you don't use acl > or quota plugins? >OK, we can still reproduce this error even without quota's or ACL's, but we were able to narrow it down. EXPUNGE fails only with "lazy_expunge" enabled, and you have symlinked a folder to a different file system: ln -s /mailstore/user/Maildir/.Junk -> /junkstore/user/JunkMail When we symlink to the same filesystem, it works: ln -s /mailstore/user/Maildir/.Junk -> /mailstore/user/JunkMail The /mailstore and /junkstore are separate NFS-mounted filesystems. Here is the transaction log when it fails, using Dovecot 1.0.3: =============================================* OK System ready. a a BAD Error in IMAP command received by server. a001 LOGIN testuser testpw a001 OK Logged in. a002 SELECT Junk * FLAGS (\Answered \Flagged \Deleted \Seen \Draft $NotJunk $Junk) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft $NotJunk $Junk \*)] Flags permitted. * 5 EXISTS * 1 RECENT * OK [UNSEEN 1] First unseen. * OK [UIDVALIDITY 1186687991] UIDs valid * OK [UIDNEXT 3777] Predicted next UID a002 OK [READ-WRITE] Select completed. a003 FETCH 1:* (UID) * 1 FETCH (UID 3772) * 2 FETCH (UID 3773) * 3 FETCH (UID 3774) * 4 FETCH (UID 3775) * 5 FETCH (UID 3776) a003 OK Fetch completed. a004 STORE 1 +flags \Deleted * 1 FETCH (FLAGS (\Deleted $NotJunk)) a004 OK Store completed. a005 EXPUNGE a005 NO BUG: Unknown internal error a006 LOGOUT * BYE Logging out a006 OK Logout completed. ============================================= We appreciate your help! :) Rich