Search the OSG website:

Account Maintenance Tasks

Audience

The Gatorlink mail system is an implementation of the Cyrus IMAP system. This document revolves around the usage of our own in-house scripts used for manipulating IMAP accounts. Therefore this document probably won't be very useful to anyone outside of our organization.

Fixing Broken Mailboxes

Occassionally MUPDATE on the murder master dies. When this happens accounts that are created during the down time end up in a half-created state- the GL username is recorded in the local database on the master, but the new account doesn't get pushed to the backend. The key indicator of this scenario is that our cyrus-show script this will result in the error message: "- ERROR: Unable to retrieve quota for user $username."

When this problem is encountered it's a good idea to get the original entry for the user from the cyrus database. By collecting the creation timestamps from these botched account creations you can later go back and analyze the failure trends. This can be done using the our ndbm-check script.

The next step is to remove the account. This can be done with the cyrus-remove script.

Now you want to create the account (hopefully this time it'll work). This is done with the cyrus-add script.

If the creation is successful, use the cyrus-show script to verify that the mailbox has now been created.

Here's an example of how to deal with a half-created mailbox. The user is 'test-username'. This is performed on the murder master as the 'am' user.

am@spnode21:/u/am/bin$ ./cyrus-show test-username
- ERROR: Unable to retrieve quota for user test-username.

am@spnode21:/u/am/bin$ ./ndbm-check test-username
+test-username:171470:1120080260

am@spnode21:/u/am/bin$ ./ndbm-check test-username >> /u/am/broken-mailboxes.log

am@spnode21:/u/am/bin$ ./cyrus-remove test-username
+

am@spnode21:/u/am/bin$ ./cyrus-add test-username
+

am@spnode21:/u/am/bin$ ./cyrus-show test-username
+test-username:171471:1120080515:50000,0

am@spnode21:/u/am/bin$ ./ndbm-check test-username
+test-username:171471:1120080515
    

Once everything is good it's not a terrible idea to check to see where the user's new mailbox lives. This is done with the ctl_mboxlist -d piped through grep to find the user we're interested in. You'll notice that the user's mailbox is called 'user.test-username' and it exists on glmail01 on partition 31.

cyrus@spnode21$ /usr/local/bin/ctl_mboxlist -d|grep -w test-username
user.test-username      glmail01.nerdc.ufl.edu!31       test-username   lrswipcda