Are you running any particular Postfix version on any particular
platform, built from source or binary distribution?
The code in question is
double smtpd_space_multf = 1.5;
#define BLOCKS(x) ((x) / fsbuf.block_size)
if (BLOCKS(var_queue_minfree) >= fsbuf.block_free
|| BLOCKS(var_message_limit) >= fsbuf.block_free / smtpd_space_multf) {
(void) smtpd_check_reject(state, MAIL_ERROR_RESOURCE,
452, "4.3.1",
"Insufficient system storage");
msg_warn("not enough free space in mail queue: %lu bytes < "
"%g*message size limit",
(unsigned long) fsbuf.block_free * fsbuf.block_size,
smtpd_space_multf);
The test has two conditions, and one of them is true. In addition
we know that fsbuf.block_free * fsbuf.block_size = 908328873984
which is a plausible value (this number is logged in a warning
message). So both fsbuf.block_free and fsbuf.block_size are
likely good.
- If the first condition is true, then the queue_minfree parameter
has a small non-zero value. As this is parameter is not read from
main.cf, perhaps its compiled-in default value has changed due
to a bit-flip in non-ECC memory? A reboot would change that.
- If the second condition is true, then the message_size_limit
parameter has a very large value. As this is read from main.cf
and converted to number every time a process starts, a bad
bit-flip in the message_size_limit value is unlikely.
Wietse