0

I have already checked the solutions at this post, but I can't find the reason.

This is my situation:

  • Running postfix inside a docker container (docker swarm).
  • Docker container has no quota.
  • /var/mail volume mounted from /mnt/shared/postfix/var/mail/ in host.
  • /mnt/shared/ is a network logical device using glusterfs (xfs formatted) with 3 nodes.
# df -h

Filesystem Size Used Avail Use% Mounted on /dev/vda2 20G 12G 7.1G 62% / /dev/vda2 20G 12G 7.1G 62% /var/spool/postfix /dev/vda3 60G 31G 30G 51% /gluster mx1:shared 120G 63G 58G 52% /mnt/shared

df -i

Filesystem Inodes IUsed IFree IUse% Mounted on /dev/vda2 1310720 200164 1110556 16% / /dev/vda2 1310720 200164 1110556 16% /var/spool/postfix /dev/vda3 31455744 523000 30932744 2% /gluster mx1:shared 31455744 523000 30932744 2% /mnt/shared

df -k

Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda2 20466256 8816788 10584508 46% / /dev/vda2 20466256 8816788 10584508 46% /var/spool/postfix /dev/vda3 62880772 32043020 30837752 51% /gluster manager1:shared 125761544 65343656 60417888 52% /mnt/shared

gluster volume status shared detail

Status of volume: shared

Brick : Brick mx1:/gluster/brick TCP Port : 59830
RDMA Port : 0
Online : Y
Pid : 727880
File System : xfs
Device : /dev/vda3
Mount Options : rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota Inode Size : 512
Disk Space Free : 29.4GB
Total Disk Space : 60.0GB
Inode Count : 31455744
Free Inodes : 30932804


Brick : Brick mx2:/gluster/brick TCP Port : 55380
RDMA Port : 0
Online : Y
Pid : 3784930
File System : xfs
Device : /dev/vda3
Mount Options : rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota Inode Size : 512
Disk Space Free : 29.4GB
Total Disk Space : 60.0GB
Inode Count : 31455744
Free Inodes : 30932804


Brick : Brick mx3:/gluster/brick TCP Port : 58943
RDMA Port : 0
Online : Y
Pid : 3905147
File System : xfs
Device : /dev/vda3
Mount Options : rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota Inode Size : 512
Disk Space Free : 29.4GB
Total Disk Space : 60.0GB
Inode Count : 31455744
Free Inodes : 30932804

gluster volume status shared inode

Brick : mx1:/gluster/brick Connection 1: LRU limit : 16384 Active Inodes : 958 LRU Inodes : 16383 Purge Inodes : 0


Brick : mx2:/gluster/brick Connection 1: LRU limit : 16384 Active Inodes : 829 LRU Inodes : 16373 Purge Inodes : 0


Brick : mx3:/gluster/brick Connection 1: LRU limit : 16384 Active Inodes : 1087 LRU Inodes : 16370 Purge Inodes : 0

postconf -n

Most relevant:

mailbox_size_limit = 100000000
message_size_limit = 50000000

Full config:

alias_database = texthash:/etc/aliases alias_maps = texthash:/etc/aliases append_dot_mydomain = no biff = no bounce_queue_lifetime = 10m broken_sasl_auth_clients = yes compatibility_level = 3.6 content_filter = smtp-amavis:amavis:10024 disable_vrfy_command = yes header_checks = regexp:/etc/postfix/config/header_checks.regex inet_interfaces = all inet_protocols = ipv4 mailbox_size_limit = 100000000 maillog_file = /var/log/mail.log maximal_backoff_time = 10m maximal_queue_lifetime = 10m message_size_limit = 50000000 mydestination = localhost myhostname = mail.example.com mynetworks = /etc/postfix/config/my.networks.plain myorigin = $myhostname policy-spf_time_limit = 3600s postscreen_access_list = permit_mynetworks cidr:/etc/postfix/config/postscreen_access.cidr postscreen_blacklist_action = drop postscreen_dnsbl_action = enforce postscreen_dnsbl_reply_map = texthash:/etc/postfix/config/dnsbl_reply postscreen_dnsbl_sites = zen.spamhaus.org=127.0.0.[2..11] b.barracudacentral.org psbl.surriel.com bl.spamcop.net bl.spameatingmonkey.net dnsbl.sorbs.net swl.spamhaus.org-2 list.dnswl.org=127.[0..255].[0..255].0-2, list.dnswl.org=127.[0..255].[0..255].1-4, list.dnswl.org=127.[0..255].[0..255].[2..3]-6 postscreen_greet_action = drop queue_directory = /var/spool/postfix queue_run_delay = 5m readme_directory = no recipient_delimiter = + relayhost = smtp_tls_exclude_ciphers = EXPORT, LOW, MD5, aDSS, kECDHe, kECDHr, kDHd, kDHr, SEED, IDEA, RC2, RC4, aNULL smtp_tls_loglevel = $smtpd_tls_loglevel smtp_tls_mandatory_ciphers = medium smtp_tls_mandatory_protocols = $smtpd_tls_protocols smtp_tls_note_starttls_offer = yes smtp_tls_protocols = $smtpd_tls_protocols smtp_tls_security_level = $smtpd_tls_security_level smtpd_banner = $myhostname ESMTP smtpd_client_connection_rate_limit = 60 smtpd_client_message_rate_limit = 100 smtpd_client_new_tls_session_rate_limit = 60 smtpd_client_recipient_rate_limit = 100 smtpd_client_restrictions = check_client_access texthash:/etc/postfix/config/client_access.hash permit_mynetworks reject_unauth_pipelining permit_sasl_authenticated permit smtpd_delay_reject = yes smtpd_error_sleep_time = 1s smtpd_hard_error_limit = 20 smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks permit_sasl_authenticated reject_invalid_helo_hostname permit smtpd_recipient_restrictions = reject_non_fqdn_recipient check_recipient_access texthash:/etc/postfix/config/recipient_access.hash check_sender_access texthash:/etc/postfix/config/sender_access.hash permit_sasl_authenticated check_policy_service unix:private/policy-spf warn_if_reject reject_unknown_recipient_domain permit_mynetworks reject_unauth_destination warn_if_reject reject_unverified_recipient reject_rhsbl_sender dbl.spamhaus.org=127.0.1.[2..99] reject_rhsbl_helo dbl.spamhaus.org=127.0.1.[2..99] reject_rhsbl_reverse_client dbl.spamhaus.org=127.0.1.[2..99] warn_if_reject reject_rbl_client zen.spamhaus.org=127.255.255.[1..255] permit smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_path = inet:dovecot:999 smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sender_login_maps = mysql:/etc/postfix/mysql.users.cf smtpd_sender_restrictions = check_sender_access texthash:/etc/postfix/config/sender_access.hash permit_sasl_authenticated permit_mynetworks reject_non_fqdn_sender permit smtpd_soft_error_limit = 10 smtpd_tls_CAfile = /etc/postfix/ssl/chain.pem smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/postfix/ssl/cert.pem smtpd_tls_dh1024_param_file = ${config_directory}/dh2048.pem smtpd_tls_dh512_param_file = ${config_directory}/dh512.pem smtpd_tls_eecdh_grade = strong smtpd_tls_exclude_ciphers = EXPORT, LOW, MD5, SEED, IDEA, RC2, RC4, aNULL smtpd_tls_key_file = /etc/postfix/ssl/privkey.pem smtpd_tls_loglevel = 1 smtpd_tls_mandatory_ciphers = high smtpd_tls_mandatory_protocols = $smtpd_tls_protocols smtpd_tls_protocols = >=TLSv1.2 smtpd_tls_received_header = yes smtpd_tls_security_level = may smtpd_tls_session_cache_timeout = 3600s smtpd_use_tls = yes tls_preempt_cipherlist = yes tls_random_source = dev:/dev/urandom transport_maps = texthash:/etc/postfix/config/transport.hash virtual_alias_maps = mysql:/etc/postfix/mysql.aliases.cf virtual_gid_maps = static:5000 virtual_mailbox_base = /var/mail virtual_mailbox_domains = mysql:/etc/postfix/mysql.domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql.users.cf virtual_minimum_uid = 5000 virtual_uid_maps = static:5000

The error looks like:

warning: not enough free space in mail queue: 0 bytes < 1.5*message size limit
94AA9C30D6: to=<info@mail.example.com>, orig_to=<info@example.com>, relay=amavis[10.0.5.92]:10024, delay=376, delays=371/0/0/5.3, dsn=4.3.1, status=deferred (host amavis[10.0.5.92] said: 452 4.3.1 id=97454-19 - Temporary MTA failure on relaying, from MTA(smtp:[postfix]:10025): 452 4.3.1 Insufficient system storage (in reply to end of DATA command))

The mail queue is practically empty (reported by mailq)

The free space reported by postfix gradually decreased until it reached 0. Where does that value comes from? Is there any way to get the total free space "seen" by postfix?

Ultimately I restarted the server and I'm not seeing those warnings/errors anymore. However I suspect the problem will be back soon or later. I don't want keep restarting the server each time, so I would like to know why is that happening.

lepe
  • 469
  • 2
  • 8
  • 25

1 Answers1

1

/var/mail volume mounted from /mnt/shared/postfix/var/mail/ in host

But the default director for the mailq is /var/spool/postfix. Map this in your dockerfile (or create a new directory in /mnt/shared/postfix/var/mail/ then symlink it from the /var/spool/postfix in the docker root volume, or change the 'queue_directory' setting in main.cf). Make sure you carry over any permissions and you should be sorted.

symcbean
  • 23,767
  • 2
  • 38
  • 58