On Tue, 28 Jun 2011 15:05 +0200, "Bron Gondwana" <brong@xxxxxxxxxxx> wrote: > On Tue, 28 Jun 2011 14:42 +0200, "Bron Gondwana" <brong@xxxxxxxxxxx> wrote: > > Ok, so that's annoying. LOGOUT doesn't clean up after itself. > > That's definitely a bug. I'll see what I can do about that. > > Ahh, yeah - we don't read the cyrus.index again on shutdown, so we > don't notice that the flag has been set. That kind of sucks. I > guess the workaround would be to take a readonly trylock during > mailbox close and re-read the header. Hmm. I'll see how much code > that would take. Answer: not much + /* get a re-read of the options field for cleanup purposes */ + if (!mailbox->index_locktype) + mailbox_lock_index(mailbox, LOCK_SHARED); That's a non-speculative lock though, so it means the close could wind up waiting when it didn't strictly need to. A better solution would be to have a non-blocking read-only lock type. But we don't have one of those. This will be fine though - usually the lock will succeed anyway, and this will only occur when we're doing a an imapd deselect, because pretty much every other case the index is already locked going in to the close. Bron. -- Bron Gondwana brong@xxxxxxxxxxx ---- Cyrus Home Page: http://www.cyrusimap.org/ List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/