[Dovecot] Shared folder (namespace) access hanging
Hi,
I'm using Dovecot 1.0-b8. We use a shared 'support' account for incoming support mail. For security reasons we want to instead have everyone with their own account, accessing a shared 'support' folder. So I've configured dovecot with a public 'Support' namespace:
default_mail_env = maildir:/imap/mailboxes/%u
namespace private { separator = / prefix = inbox = yes } namespace public { separator = / location = maildir:/imap/mailboxes/support:CONTROL=/imap/mailboxes/%u/shared-settings/support/control prefix = Support/ hidden = no }
So now:
- User 'support' logs in (this is the user whose folder is being shared). Dovecot creates a dovecot-uidlist file:
root@redback:/imap/mailboxes/support/.INBOX.test# cat dovecot-uidlist 1 1147757548 9 1 1147755677.P8078Q3M183587.redback.sydney.atlassian.com:2,RSace 2 1147755677.P8078Q2M183587.redback.sydney.atlassian.com:2,abcdf 3 1147755677.P8078Q1M183587.redback.sydney.atlassian.com:2,Sabcd 4 1147756077.P8078Q8.redback.sydney.atlassian.com:2,Sabcd 5 1147756440.P8461Q3M643698.redback.sydney.atlassian.com:2,Sa 6 1147756440.P8461Q2M643698.redback.sydney.atlassian.com:2,Sa 7 1147756440.P8461Q1M643698.redback.sydney.atlassian.com:2,Sa 8 1147756440.P8461Q0M643698.redback.sydney.atlassian.com:2,Sa root@redback:/imap/mailboxes/support/.INBOX.test# ls -la total 60 drwxrwx--- 5 jturner mail 4096 May 16 15:32 . drwxrwxrwx 59 support mail 4096 May 16 15:31 .. drwxrwx--- 2 jturner mail 4096 May 16 15:18 cur -rw-rw-rw- 1 support mail 448 May 16 15:32 dovecot.index -rw-rw-rw- 1 support mail 21504 May 16 15:32 dovecot.index.cache -rw-rw-rw- 1 support mail 512 May 16 15:32 dovecot.index.log -rw------- 1 support mail 72 May 16 15:28 dovecot-keywords -rw-rw-rw- 1 jturner mail 0 May 16 14:52 dovecot-shared -rw-rw-rw- 1 support mail 516 May 16 15:32 dovecot-uidlist drwxrwx--- 2 jturner mail 4096 May 16 15:01 new drwxrwx--- 2 jturner mail 4096 May 16 15:14 tmp root@redback:/imap/mailboxes/support/.INBOX.test#
- If I now log in as 'jturner' and subscribe to this folder, there appears to be nothing in the 'test' folder. On disk, the folder subscription is registered but the test folder's CONTROL directory is empty:
ls /imap/mailboxes/jturner/shared-settings/support/control/
subscriptions # cat /imap/mailboxes/jturner/shared-settings/support/control/subscriptions INBOX.test # ls /imap/mailboxes/jturner/shared-settings/support/control/.INBOX.test/ #
Restarting dovecot and Thunderbird makes no difference.
However, if I delete dovecot.index and dovecot.index.log from /imap/mailboxes/support/.INBOX.test/, then suddenly it works. User 'jturner' can view the folder contents, and a uidlist file for them appears:
# cat /imap/mailboxes/jturner/shared-settings/support/control/.INBOX.test/dovecot-uidlist 1 1147758095 9 1 1147755677.P8078Q3M183587.redback.sydney.atlassian.com:2,RSace 2 1147755677.P8078Q2M183587.redback.sydney.atlassian.com:2,abcdf 3 1147755677.P8078Q1M183587.redback.sydney.atlassian.com:2,Sabcd 4 1147756077.P8078Q8.redback.sydney.atlassian.com:2,Sabcd 5 1147756440.P8461Q3M643698.redback.sydney.atlassian.com:2,Sa 6 1147756440.P8461Q2M643698.redback.sydney.atlassian.com:2,Sa 7 1147756440.P8461Q1M643698.redback.sydney.atlassian.com:2,Sa 8 1147756440.P8461Q0M643698.redback.sydney.atlassian.com:2,Sa
Although the contents is the same (1-8), the UIDVALIDITY at the top is different to that for the 'support' user:
# head -1 /imap/mailboxes/jturner/shared-settings/support/control/.INBOX.test/dovecot-uidlist 1 1147758095 9 # head -1 /imap/mailboxes/support/.INBOX.test/dovecot-uidlist 1 1147757548 9
and now if I log back in as 'support' and access the folder, dovecot complains:
dovecot: May 16 15:47:05 Error: IMAP(support): Corrupted index cache file /imap/mailboxes/support/.INBOX.test/dovecot.index.cache: indexid changed
Switching back and forth results in various errors:
dovecot: May 16 15:48:04 Error: IMAP(support): Corrupted transaction log file /imap/mailboxes/support/.INBOX.test/dovecot.index.log: end_offset (656) > current sync_offset (512) dovecot: May 16 15:48:04 Error: IMAP(support): Corrupted transaction log file /imap/mailboxes/support/.INBOX.test/dovecot.index.log: invalid indexid (1147758095 != 1147757548) dovecot: May 16 15:48:04 Error: IMAP(support): Corrupted transaction log file /imap/mailboxes/support/.INBOX.test/dovecot.index.log: invalid new transaction log sequence (2 >= 2) dovecot: May 16 15:48:04 Error: IMAP(support): Lost transaction log file /imap/mailboxes/support/.INBOX.test/dovecot.index.log seq 1
In the wild, I've seen frequent occurrences of this error, where dovecot seems to switch between the UIDVALIDITY of 'support' and a user's dovecot-uidlists:
dovecot: May 16 13:56:28 Error: IMAP(jturner): Maildir /imap/mailboxes/support/.INBOX sync: UIDVALIDITY changed (1147751603 -> 1147686345)
and here's it toggling back from 'support' to jturner's dovecot-uidlist uidvalidity:
dovecot: May 16 14:16:04 Error: IMAP(support): Maildir /imap/mailboxes/support/.INBOX sync: UIDVALIDITY changed (1147752716 -> 1147751603)
I've also seen plenty of processes being killed, seemingly at random, about 3 or 4 a minute:
# cat /usr/local/logs/dovecot | grep killed.wit ... dovecot: May 16 12:00:16 Error: child 32706 (imap) killed with signal 6 dovecot: May 16 12:00:16 Error: child 32649 (imap) killed with signal 14 dovecot: May 16 12:00:45 Error: child 32412 (imap) killed with signal 6 dovecot: May 16 12:01:02 Error: child 32702 (imap) killed with signal 6 dovecot: May 16 12:01:02 Error: child 368 (imap) killed with signal 6 dovecot: May 16 12:01:02 Error: child 357 (imap) killed with signal 6 dovecot: May 16 12:01:16 Error: child 383 (imap) killed with signal 6 dovecot: May 16 12:02:26 Error: child 32297 (imap) killed with signal 6 ...
So I'm confused. Am I doing something stupid? Why is there a common .cache file (it doesn't get created in the CONTROL dir), but not a common dovecot-uidlists? Is anyone actually *using* shared folders? :)
Thanks,
Jeff
On Tuesday 16 May 2006 08:07, Jeff Turner wrote:
Hi,
I'm using Dovecot 1.0-b8. We use a shared 'support' account for incoming support mail. For security reasons we want to instead have everyone with their own account, accessing a shared 'support' folder. So I've configured dovecot with a public 'Support' namespace:
default_mail_env = maildir:/imap/mailboxes/%u
namespace private { separator = / prefix = inbox = yes } namespace public { separator = / location =
maildir:/imap/mailboxes/support:CONTROL=/imap/mailboxes/%u/shared-set tings/support/control prefix = Support/ hidden = no }
[...]
So I'm confused. Am I doing something stupid? Why is there a common .cache file (it doesn't get created in the CONTROL dir), but not a common dovecot-uidlists? Is anyone actually *using* shared folders? :)
I do. I had similar problem in the beginning, but now I also specify separate indexes with :INDEX=/path/with/user/component in addition to CONTROL=/path. This works.
Thanks,
Jeff
Rainer
Software Development
Inxmail GmbH http://www.inxmail.de
On Tue, May 16, 2006 at 08:39:20AM +0200, Rainer Frey wrote:
On Tuesday 16 May 2006 08:07, Jeff Turner wrote:
Hi,
I'm using Dovecot 1.0-b8. We use a shared 'support' account for incoming support mail. For security reasons we want to instead have everyone with their own account, accessing a shared 'support' folder. So I've configured dovecot with a public 'Support' namespace:
default_mail_env = maildir:/imap/mailboxes/%u
namespace private { separator = / prefix = inbox = yes } namespace public { separator = / location =
maildir:/imap/mailboxes/support:CONTROL=/imap/mailboxes/%u/shared-set tings/support/control prefix = Support/ hidden = no }
[...]
So I'm confused. Am I doing something stupid? Why is there a common .cache file (it doesn't get created in the CONTROL dir), but not a common dovecot-uidlists? Is anyone actually *using* shared folders? :)
I do. I had similar problem in the beginning, but now I also specify separate indexes with :INDEX=/path/with/user/component in addition to CONTROL=/path. This works.
Thanks, that seems to have fixed the problems. I'll update the wiki to suggest always setting INDEX (and CONTROL) for shared folders.
--Jeff
Thanks,
Jeff
Rainer
Software Development
Inxmail GmbH http://www.inxmail.de
participants (2)
-
Jeff Turner
-
Rainer Frey