lmtp panic with many recipients

Olaf Hopp Olaf.Hopp at kit.edu
Wed May 9 12:09:18 EEST 2018


On 05/09/2018 10:04 AM, Stephan Bosch wrote:
> 
> 
> Op 08/05/2018 om 10:34 schreef Olaf Hopp:
>> Hi,
>>
>> I had an email with 58 recipients in the "To" and 13 in the "CC"
>> Delivering it from exim to dovecot lmtp panics (see below)
>> Panic: file smtp-address.c: line 533 (smtp_address_write): assertion failed: (smtp_char_is_qpair(*p))
>>
>> # 2.3.1 (c5a5c0c82): /etc/dovecot/dovecot.conf
>> # Pigeonhole version 0.5.devel (61b47828)
>> # OS: Linux 2.6.32-696.23.1.el6.x86_64 x86_64 CentOS release 6.9 (Final)
>>
> 
> Do you have an example e-mail that triggers the problem and the sieve scripts that are involved for the recipient that causes the crash?
> 

Hi Stephan,

the original mail got stuck within exim on my production server and was from "somebody" to many "somebodys" but not me.
So with exim I added as envelope recipient a test user "ms2test" on my test system "irams2.ira.uka.de"
The test user "ms2test" has just an empty sieve script (all comments).
There is a global sieve_before-Script doing spam delivery into spambox:

#
require ["fileinto", "regex", "envelope"];
#
#
if allof (
         not header :comparator "i;ascii-casemap" :regex "Subject" "fail.*deliver",
         not header :comparator "i;octet" :contains "Subject" "DBWORLD",
         not header :comparator "i;octet" :contains "List-Id" "ieft.org",
         not header :comparator "i;octet" :contains "Subject" "Google Alert",
         not header :comparator "i;octet" :contains "Subject" "Google Gaga",
  	not header :comparator "i;octet" :contains "Subject" "foo",
         not header :comparator "i;octet" :contains "Subject" "Woechentliche Spam-Benachrichtigung",
         not address :all :comparator "i;octet" :contains "To" "robocup",
         not header :comparator "i;octet" :is "Envelope-to" "ms2spam at ira.uka.de",

	exists [ "X-ATIS-Spam-Flag" ] ) {

		fileinto "INBOX.spambox";
		stop;
}

The mail in question contains third party adresses and content. So I can't post it here.
I will try to reproduce it by myself with just dummy addresses.

Ok, another finding:
if I strip down the global sieve_before just to

require ["fileinto", "regex", "envelope"];
if allof (
         not address :all :comparator "i;octet" :contains "To" "robocup"
	) {

		fileinto "INBOX.spambox";
		stop;
}
the mail got stuck.
If I reenable all other original lines, but remove the "rococup" line the mail get's delivered.


"doveconf -n" see below

Olaf


# doveconf -n
# 2.3.1 (c5a5c0c82): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.devel (61b47828)
doveconf: Warning: service auth { client_limit=2000 } is lower than required under max. load (20192)
doveconf: Warning: service anvil { client_limit=2000 } is lower than required under max. load (17195)
# OS: Linux 2.6.32-696.23.1.el6.x86_64 x86_64 CentOS release 6.9 (Final)
# Hostname: irams1.ira.uka.de
auth_failure_delay = 3 secs
auth_master_user_separator = *
auth_mechanisms = plain login
auth_username_format = %Ln
auth_verbose = yes
auth_verbose_passwords = plain
auth_worker_max_count = 60
default_client_limit = 2000
default_process_limit = 3000
first_valid_uid = 1000
last_valid_uid = 65533
mail_location = maildir:~/Maildir
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext
mbox_write_locks = fcntl
namespace inbox {
   inbox = yes
   location =
   mailbox "Deleted Items" {
     autoexpunge = 30 days
     special_use = \Trash
   }
   mailbox "Deleted Messages" {
     autoexpunge = 30 days
     special_use = \Trash
   }
   mailbox Drafts {
     auto = subscribe
     special_use = \Drafts
   }
   mailbox "Gelöschte Objekte" {
     autoexpunge = 30 days
     special_use = \Trash
   }
   mailbox "Gel&APY-schte Objekte" {
     autoexpunge = 30 days
     special_use = \Trash
   }
   mailbox Papierkorb {
     autoexpunge = 30 days
     special_use = \Trash
   }
   mailbox Sent {
     auto = subscribe
     special_use = \Sent
   }
   mailbox Trash {
     auto = subscribe
     autoexpunge = 30 days
     special_use = \Trash
   }
   mailbox spambox {
     auto = create
     special_use = \Junk
   }
   prefix = INBOX.
   separator = .
}
passdb {
   args = /etc/dovecot/master-users
   driver = passwd-file
   master = yes
}
passdb {
   args = dovecot
   driver = pam
}
plugin {
   sieve = file:~/sieve;active=~/.dovecot.sieve
   sieve_before = /etc/dovecot/sieve-master
   sieve_max_redirects = 20
}
postmaster_address = postmaster at ira.uka.de
protocols = imap pop3 lmtp sieve sieve
quota_full_tempfail = yes
service imap-login {
   process_limit = 8192
   process_min_avail = 16
   service_count = 0
}
service imap {
   process_limit = 8192
}
service lmtp {
   executable = lmtp -L
}
service managesieve-login {
   inet_listener sieve {
     port = 4190
   }
}
service pop3 {
   process_limit = 8192
}
ssl = required
ssl_ca = </etc/pki/tls/certs/kitchain_new.crt
ssl_cert = </etc/pki/tls/certs/imap.informatik.pem
ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
ssl_dh =  # hidden, use -P to show it
ssl_key =  # hidden, use -P to show it
ssl_prefer_server_ciphers = yes
syslog_facility = local3
userdb {
   driver = passwd
}
verbose_proctitle = yes
protocol lmtp {
   mail_plugins = " sieve"
}
protocol imap {
   mail_max_userip_connections = 100
   ssl_cert = </etc/pki/tls/certs/imap_with_chain.informatik.kit.edu.pem
   ssl_key =  # hidden, use -P to show it
}
protocol pop3 {
   ssl_cert = </etc/pki/tls/certs/pop_with_chain.informatik.kit.edu.pem
   ssl_key =  # hidden, use -P to show it
}



-- 
Karlsruher Institut für Technologie (KIT)
ATIS - Abt. Technische Infrastruktur, Fakultät für Informatik

Dipl.-Geophys. Olaf Hopp
- Leitung IT-Dienste -

Am Fasanengarten 5, Gebäude 50.34, Raum 009
76131 Karlsruhe
Telefon: +49 721 608-43973
Fax: +49 721 608-46699
E-Mail: Olaf.Hopp at kit.edu
atis.informatik.kit.edu

www.kit.edu

KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Das KIT ist seit 2010 als familiengerechte Hochschule zertifiziert.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5304 bytes
Desc: S/MIME Cryptographic Signature
URL: <https://dovecot.org/pipermail/dovecot/attachments/20180509/f505a478/attachment.p7s>


More information about the dovecot mailing list