Gotta love responding to mails from 2 1/2 years ago, but I haven't seen a
solution here yet.

Anyway, I ran across this same problem on our system with 50K+ users, so we
really needed to have "quota -f" working.  After being thrown off by this
analysis for a while (it closes the 4th file descriptor a bit later in the
truss output), truss actually provided me with the clues.  It was trying to
open /var/spool/cyrus/default/user/INBOX/cyrus.header, which didn't exist (not
surprisingly, since it's a stupid name for a user).

It turned out that this came from the file mailboxes, which is in the
configdirectory as defined in /etc/imapd.conf.  I'm going to go out on a very
small limb and say that this mailbox was created when the sysadmins were
trying to work out what was going on and didn't clean up after themselves.

So, run
        truss -t open quota -f
and look for the file that it fails to open and work out why it's there.

Hope this is still useful to someone.

Stephen

imapd 1.6.24
solaris 8


quoth Darrell Berry:
| we're suffereing from this too...has anyone found a workaround? (i'm on
| linux 2.0.30, Cyrus 1.5.2)...with 200 very active users i'm having to
| reboot the machine every couple of days...
| 
| Gary Mills wrote:
| > 
| > Tim Showalter <[EMAIL PROTECTED]>:
| > >
| > >> From: Gary Mills <[EMAIL PROTECTED]>
| > >> Date: Wed, 8 Jul 1998 21:53:15 -0500 (CDT)
| > >>
| > >> When I run `quota -f', it complains `quota: System I/O error Bad file number'.
| > >> Does anyone know what's going on?  This is under Solaris 2.4 with 2200 users.
| > >
| > >No, I don't know.  I suggest you run "truss quota -f" and see which
| > >system call is failing.  You might want to reconstruct that mailbox.
| > 
| > It's running out of file descriptors.  Looks like a leak, or else
| > `quota' is trying to cache too many of them.  Here's a sequence of
| > opens and closes from truss...
| > 
| > open("/var/spool/imap/user/amacdona/cyrus.header", O_RDWR) = 4
| > open("/var/priv/imap/quota/user.amacdona", O_RDWR) = 61
| > open("/var/spool/imap/user/amacdona/cyrus.index", O_RDWR) = 62
| > open("/var/spool/imap/user/amacdona/cyrus.cache", O_RDWR) = 63
| > close(4)                                        = 0
| > close(62)                                       = 0
| > close(63)                                       = 0
| > 
| > It's opening 4 files and closing 3 until it runs out of file descriptors.
| > Unfortunately, this is difficult to relate to the source.
| > 
| > --
| > -Gary Mills-    -Unix Support-    -U of M Academic Computing and Networking-
| 
| -- 
| "a gust of wind...a dog barks..."

Reply via email to