On Thu, 1 Apr 2004, Scott Adkins wrote: > We have a case with a particular user (twice in the last week or so now) > was trying to create a subfolder and could not, getting the error "mailbox > is reserved". The folder indeed did not exist, and the user just couldn't > get it created. > > What I have found in the archives was just one thread. The user was trying > to do the reverse, delete and already existing folder. Rob responded that > the database needed to be recovered by running 'ctl_cyrusdb -r' on it.
Indeed. Ideally, this should only happen when a process crashes while creating a mailbox. Since this code is assumed to be "good" the only cause of such a crash would be a system outage. If this isn't the case, there's a bug somewhere in the recovery from a mailbox create failure. > So, my question is, what causes existing folders to get reserved (so they > can't get removed) and what causes a non-existing folder to get reserved > (so they can't get created). The latter boggles my mind, as it means that > a non-existant folder somehow gets into the database... Is it possible that > the user tries to create the folder, it fails, gets reserved, and then all > future attempts at creating the folder gets the above error? The folder needs to be reserved and committed in two phases because otherwise a mailbox list lock might need to be held across substantial disk (or in the murder case, network!) I/O. Otherwise, you might have two processes come in and try to create the mailbox at once. Knowing what sort of failure isn't being recovered from properly would help in trying to track this down. -Rob -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Rob Siemborski * Andrew Systems Group * Cyert Hall 207 * 412-268-7456 Research Systems Programmer * /usr/contributed Gatekeeper --- Home Page: http://asg.web.cmu.edu/cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html