Disabling quotas in cyrus

Tim Champ champ at umbc.edu
Mon May 11 12:40:29 EDT 2009

Hello all.  We are doing some substantial number of moves of users 
between backends here, and have been running into problems with 
quotas.db.  We are currently running 2.3.8 as our version of cyrus.

The problem is that we seem to run into lock issues with quotas.db 
(nothing else yet, thankfully!) where errors arise, and in some cases it 
brings cyrus to a halt.  We have to then grab a last known good 
quotas.db file (either from a backup or a export that we import) and 
then restart with that.  Then we do a "quota -f" to update, and await 
the users that aren't in the file (since they were moved after that last 
known good copy) to "pop up" on the list so we can fix their quota (as 
it gives them 0 by default).

The problems with this are those users start bouncing mail, it takes a 
lot of manual intervention, downtime on the mail server, etc. 

So, what we were thinking of is disabling quotas on the servers we're 
moving to, so that this problem is mitigated and our moves can continue 
at a good pace.  Currently we've just been sticking to a single batch 
script that only does one "xfer" at a time, as that seems to avoid any 
major problems. (we still see it occasionally, but it seems to recover 
on its own)  We would like to run multiples, but it seems to really 
start to have problems with locking on the multiple xfers.  We haven't 
noticed any problems on the "from" boxes with moves.

Also, once disabled, we'd then need to be able to re-enable and set 
quotas for everyone at a future time. (Hopefully without a manual one at 
a time process)

Is there any semi-easy solution to this?  If not, we'll stick to what 
we're doing, but wanted to ask.  Also, this problem doesn't seem to 
happen in normal functions of our servers (we hadn't before run into it 
until these xfers)  If anyone has further questions for me, I'll answer 
as best I can.   Sample log entries below for the curious.  Sorry if 
this is a "RTFM" question, I just haven't seen anything about it in my 


Tim Champ
UMBC DoIT Unix Infrastructure Team


$DATE MAILSERVER imap[14262]: [ID 335833 local6.error] DBERROR: error 
fetching user.$USER.$FOLDER: cyrusdb error
$DATE MAILSERVER imap[14262]: [ID 602473 local6.error] IOERROR: 
lock_shared /$SERVER/data/config/quotas.db: Bad file number

--- This sometimes resolves itself fine, but other times it causes cyrus 
to quit functioning.  If you attempt to restart cyrus, it flakes out 
with quotas.db being invalid.  This log blurb is during the move of $USER. 

More information about the Info-cyrus mailing list