Linux - ServerThis forum is for the discussion of Linux Software used in a server related context.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Our system is running Linux kernel 4.8.10, MTA is sendmail 8.15.2 with
procmail 3.22, all filesystems are ext3, all mailboxes are in the Berkeley format.
A user reported that he could not receive e-mails from some hosts occasionally (including the local mail server itself) for a couple of days.
The problem was reproducible. It was found that whenever the problem occurred, the sender received a bounce message from MAILER-DAEMON@<domain-name> containing lines like :
# ----- The following addresses had permanent fatal errors -----
# <user-name@domain-name>
# (reason: Can't create output)
#
# ----- Transcript of session follows -----
# procmail: Error while writing to "/home/user-name/inbox"
# 550 5.0.0 <user-name@domain-name>... Can't create output
This looks as if the user had his disk quota exceeded, but it was not the case.
In examining the user's mail folders, I found that his "inbox" had grown unhealthily large.
His account disk quota is 3.25GB. The size of his "inbox" was about 2.84GB, containing nearly 5000 messages. The total size of other files was negligible.
The problem was solved by renaming the "inbox" to something else and creating an empty one from scratch.
I guess there may be limitations on the file size or number of messages in Berkeley mailboxes.
If this is true, then what exactly are those limitations ?
and see what those are. You may have bumped up against that limit.
#2 Ext3 has limits of two kinds. The absolute limit is huge and you are nowhere near that limit. At around 5000 files the list/search functions start to cause some processes to time out finding a file or file slot. I migrated to Ext4 long ago to avoid this, but it only moves the limit up but does not change the nature of the limit.
I would not worry about the absolute limits on the file system. I would worry about the software limit settings and practical limits. It would not be unreasonable to set a process to check the mailbox size (bytes and files) and if it was over half of what would cause failure generate a warning to the user that it is time to clean up or archive mail from that mailbox.
I haven't looked at the BDB format in ages, but "2.4 GB" rings a bell: that's (2 ^ 31) - 1 = 2,147,483,647. If the position-indicator were a 32-bit signed integer, that integer would now be overflowing. Many legacy database formats, including (say) MS-Access "JET," used such conventions. At the time, it was inconceivable that a mass-storage device could ever have that much capacity.
From time to time, mailbox users need to go through their mailboxes and clean them up ... or, as you effectively did, archive them.
and see what those are. You may have bumped up against that limit.
#2 Ext3 has limits of two kinds. The absolute limit is huge and you are nowhere near that limit. At around 5000 files the list/search functions start to cause some processes to time out finding a file or file slot. I migrated to Ext4 long ago to avoid this, but it only moves the limit up but does not change the nature of the limit.
I would not worry about the absolute limits on the file system. I would worry about the software limit settings and practical limits. It would not be unreasonable to set a process to check the mailbox size (bytes and files) and if it was over half of what would cause failure generate a warning to the user that it is time to clean up or archive mail from that mailbox.
Hi wpeckham,
As mentioned in my original post, I'm using "sendmail", not "Postfix".
Indeed I've done the inbox size check & warning in logon script, but it is human nature to ignore the warning until they suffer from the consequences.
I haven't looked at the BDB format in ages, but "2.4 GB" rings a bell: that's (2 ^ 31) - 1 = 2,147,483,647. If the position-indicator were a 32-bit signed integer, that integer would now be overflowing. Many legacy database formats, including (say) MS-Access "JET," used such conventions. At the time, it was inconceivable that a mass-storage device could ever have that much capacity.
From time to time, mailbox users need to go through their mailboxes and clean them up ... or, as you effectively did, archive them.
Hi sundialsvcs,
I'm afraid my wording may have caused your mis-understanding.
By "Berkeley" I mean the mailbox format (in which messages are delimited by lines starting with "From "), not the "Berkeley DB".
For the case I encountered, the user's huge inbox was intact, the messages therein are retrievable, but some incoming messages could not be appended to it.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.