<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
On Wed, 2 Feb 2022 18:20:48 +0100 Andreas Metzler
<a class="moz-txt-link-rfc2396E" href="mailto:ametzler@bebt.de"><ametzler@bebt.de></a> wrote:<br>
<br>
> Is this reproducible, happening with a specific host? Any
chance of<br>
> getting a coredump?<br>
> <br>
<p>exim4-daemon-custom 4.95-5<br>
libgnutls30 3.7.4-2<br>
</p>
<p>I can reproduce this with the following steps:</p>
<ol>
<li>Obtain / craft a message which is going to be deferred by
gmail</li>
<li>Queue it with: exim -odq [ ... ], this crash doesn't happen on
an immediate delivery attempt</li>
<li>Start a queue ranner: exim -q, it crashes</li>
</ol>
<p>log:<br>
</p>
<p>2022-05-10 10:49:26 1noNQY-0003Vx-PC H=gmail-smtp-in.l.google.com
[172.253.115.27]: SMTP error from remote mail server after
pipelined end of data: 421-4.7.0 [**.**.**.** 15] Our system
has detected that this message is\n421-4.7.0 suspicious due to the
very low reputation of the sending domain. To\n421-4.7.0 best
protect our users from spam, the message has been
blocked.\n421-4.7.0 Please visit\n421 4.7.0
<a class="moz-txt-link-freetext" href="https://support.google.com/mail/answer/188131">https://support.google.com/mail/answer/188131</a> for more
information. g1-20020a379d01000000b0069f5a52b15csi8762371qke.103 -
gsmtp<br>
2022-05-10 10:49:26 1noNQY-0003Vx-PC H=gmail-smtp-in.l.google.com
[172.253.115.27] TLS error on connection (recv): The TLS
connection was non-properly terminated.<br>
2022-05-10 10:49:26 1noNQY-0003Vx-PC H=gmail-smtp-in.l.google.com
[172.253.115.27] TLS error on connection (recv): The specified
session has been invalidated for some reason.<br>
2022-05-10 10:49:26 1noNQY-0003Vx-PC Delivery status for
***@gmail.com: got 0 of 7 bytes (pipeheader) from transport
process 13531 for transport smtp<br>
2022-05-10 10:49:26 1noNQY-0003Vx-PC == ***@gmail.com R=dnslookup
T=remote_smtp defer (-1): smtp transport process returned non-zero
status 0x0088: terminated by signal 8<br>
2022-05-10 10:49:26 1noNQY-0003Vx-PC Frozen<br>
2022-05-10 10:52:00 1noNQY-0003Vx-PC Message is frozen<br>
</p>
<p>dmesg:</p>
<p>traps: exim[13531] trap divide error ip:7fd95deb6b2e
sp:7ffdcafa2ac0 error:0 in
libgnutls.so.30.32.0[7fd95ddf3000+129000]</p>
<p>It seems like exim crashes when attempting to connect to the
second remote server, after the first one deferred the message.
Once again, this only happens in a queue runner.<br>
</p>
<p>I did get two occurrences of SIGSEGV logged earlier, in otherwise
the exact same circumstances, but subsequently I'm consistently
getting this divide error.</p>
<p><br>
</p>
<p># gdb /usr/sbin/exim4 /var/spool/exim4/core<br>
GNU gdb (Debian 10.1-2+b1) 10.1.90.20210103-git<br>
Copyright (C) 2021 Free Software Foundation, Inc.<br>
License GPLv3+: GNU GPL version 3 or later
<a class="moz-txt-link-rfc2396E" href="http://gnu.org/licenses/gpl.html"><http://gnu.org/licenses/gpl.html></a><br>
This is free software: you are free to change and redistribute it.<br>
There is NO WARRANTY, to the extent permitted by law.<br>
Type "show copying" and "show warranty" for details.<br>
This GDB was configured as "x86_64-linux-gnu".<br>
Type "show configuration" for configuration details.<br>
For bug reporting instructions, please see:<br>
<a class="moz-txt-link-rfc2396E" href="https://www.gnu.org/software/gdb/bugs/"><https://www.gnu.org/software/gdb/bugs/></a>.<br>
Find the GDB manual and other documentation resources online at:<br>
<a class="moz-txt-link-rfc2396E" href="http://www.gnu.org/software/gdb/documentation/"><http://www.gnu.org/software/gdb/documentation/></a>.<br>
<br>
For help, type "help".<br>
Type "apropos word" to search for commands related to "word"...<br>
Reading symbols from /usr/sbin/exim4...<br>
Reading symbols from
/usr/lib/debug/.build-id/b0/ba38f1cd15529b233aa41d2b313ad815319a3e.debug...<br>
<br>
warning: core file may not match specified executable file.<br>
[New LWP 13531]<br>
[Thread debugging using libthread_db enabled]<br>
Using host libthread_db library
"/lib/x86_64-linux-gnu/libthread_db.so.1".<br>
Core was generated by `exim -q'.<br>
Program terminated with signal SIGFPE, Arithmetic exception.<br>
#0 0x00007fd95deb6b2e in _gnutls_trust_list_get_issuer
(list=list@entry=0x56111e42a160, cert=cert@entry=0x56111e42ab70,
issuer=issuer@entry=0x7ffdcafa2c10, flags=flags@entry=16)<br>
at ../../../lib/x509/verify-high.c:1024<br>
1024 ../../../lib/x509/verify-high.c: No such file or
directory.<br>
(gdb) set pagination off<br>
(gdb) bt full<br>
#0 0x00007fd95deb6b2e in _gnutls_trust_list_get_issuer
(list=list@entry=0x56111e42a160, cert=cert@entry=0x56111e42ab70,
issuer=issuer@entry=0x7ffdcafa2c10, flags=flags@entry=16) at
../../../lib/x509/verify-high.c:1024<br>
ret = <optimized out><br>
i = 0<br>
hash = 8961028265420168270<br>
#1 0x00007fd95deb6c1f in gnutls_x509_trust_list_get_issuer
(list=list@entry=0x56111e42a160, cert=0x56111e42ab70,
issuer=issuer@entry=0x7ffdcafa2c10, flags=flags@entry=16) at
../../../lib/x509/verify-high.c:1129<br>
ret = <optimized out><br>
__func__ = "gnutls_x509_trust_list_get_issuer"<br>
#2 0x00007fd95deb75b7 in gnutls_x509_trust_list_verify_crt2
(list=0x56111e42a160, cert_list=0x7ffdcafa2c40,
cert_list@entry=0x56111e42a2c0, cert_list_size=<optimized
out>, cert_list_size@entry=3, data=data@entry=0x0,
elements=elements@entry=0, flags=flags@entry=33554432,
voutput=0x7ffdcafa2f58, func=0x0) at
../../../lib/x509/verify-high.c:1522<br>
sorted_size = <optimized out><br>
j = <optimized out><br>
issuer = 0x44496e<br>
ret = <optimized out><br>
i = <optimized out><br>
hash = <optimized out><br>
sorted = {0x56111e5a9b60, 0x56111e686530, 0x56111e42ab70,
0x7, 0x90, 0x84, 0x2e393200000009, 0x17, 0xb0, 0x2, 0x3200000009,
0x0, 0x0, 0x0, 0x6e0000005b, 0x15b1ff500}<br>
retrieved = {0x7fd95df29430, 0x2, 0x7ffdcafa2d00,
0xfc4e45175b1ff500, 0x56111e7149f0, 0xffffffffffffff78, 0x0, 0x0,
0x7ffdcafa2e04, 0x3, 0x56111e42a2d8, 0x7fd95db6d9b4
<__GI___libc_free+100>, 0x7ffdcafa2e04, 0x56111e42ab70,
0x56111e42a2d8, 0x2}<br>
retrieved_size = 0<br>
hostname = <optimized out><br>
purpose = <optimized out><br>
email = <optimized out><br>
hostname_size = <optimized out><br>
have_set_name = <optimized out><br>
saved_output = <optimized out><br>
ip = {data = <optimized out>, size = <optimized
out>}<br>
cert_set = {node = 0x56111e713a50, size = 16}<br>
__func__ = "gnutls_x509_trust_list_verify_crt2"<br>
__PRETTY_FUNCTION__ = "gnutls_x509_trust_list_verify_crt2"<br>
#3 0x00007fd95de44589 in _gnutls_x509_cert_verify_peers
(session=0x56111e457500, data=data@entry=0x0,
elements=elements@entry=0, status=status@entry=0x7ffdcafa2f58) at
../../lib/cert-session.c:597<br>
info = <optimized out><br>
cred = 0x56111e42b360<br>
peer_certificate_list = 0x56111e42a2c0<br>
resp = {data = 0x7ffdcafa2ec0 "\320If\036\021V", size =
1575479894}<br>
peer_certificate_list_size = 3<br>
i = <optimized out><br>
x = <optimized out><br>
ret = <optimized out><br>
cand_issuers = <optimized out><br>
cand_issuers_size = <optimized out><br>
ocsp_status = 0<br>
verify_flags = 33554432<br>
__func__ = "_gnutls_x509_cert_verify_peers"<br>
#4 0x00007fd95de44eb6 in gnutls_certificate_verify_peers
(session=<optimized out>, data=data@entry=0x0,
elements=elements@entry=0, status=status@entry=0x7ffdcafa2f58) at
../../lib/cert-session.c:776<br>
info = <optimized out><br>
__func__ = "gnutls_certificate_verify_peers"<br>
#5 0x00007fd95de44f2c in gnutls_certificate_verify_peers2
(session=<optimized out>,
status=status@entry=0x7ffdcafa2f58) at
../../lib/cert-session.c:653<br>
No locals.<br>
#6 0x000056111d21a501 in verify_certificate (state=<optimized
out>, errstr=0x7ffdcafa30c0) at
./b-exim4-daemon-custom/build-Linux-x86_64/tls-gnu.c:2519<br>
rc = <optimized out><br>
verify = 507868416<br>
__FUNCTION__ = "verify_certificate"<br>
#7 0x000056111d21c693 in tls_client_start
(cctx=cctx@entry=0x56111e4af0c8,
conn_args=conn_args@entry=0x56111e49f038, cookie=<optimized
out>, tlsp=tlsp@entry=0x56111d2ae3c0 <tls_out>,
errstr=errstr@entry=0x7ffdcafa30c0) at
./b-exim4-daemon-custom/build-Linux-x86_64/tls-gnu.c:3593<br>
host = 0x56111e6f1478<br>
tb = 0x56111e19b380<br>
ob = 0x56111e19b4b8<br>
rc = 0<br>
state = 0x56111e19bff0<br>
cipher_list = <optimized out><br>
require_ocsp = 0<br>
request_ocsp = 1<br>
__FUNCTION__ = "tls_client_start"<br>
#8 0x000056111d245faf in smtp_setup_conn
(sx=sx@entry=0x56111e49f028, suppress_tls=<optimized out>,
suppress_tls@entry=0) at
./b-exim4-daemon-custom/build-Linux-x86_64/transports/smtp.c:2673<br>
buffer2 = "220 2.0.0 Ready to start TLS\000 the market for
additional capital above the PPP money we helped facilitate
through the SBA portal?\n\nIf so I have updated your file and I
currently have KSE Suppliers set "...<br>
ob = 0x56111e19b4b8<br>
pass_message = 0<br>
message = 0x0<br>
yield = 0<br>
tls_errstr = 0x0<br>
__FUNCTION__ = "smtp_setup_conn"<br>
#9 0x000056111d248d1f in smtp_deliver
(addrlist=addrlist@entry=0x56111e18b658,
host=host@entry=0x56111e6f1478, host_af=host_af@entry=2,
defport=<optimized out>, interface=<optimized out>,
tblock=tblock@entry=0x56111e19b380, message_defer=<optimized
out>, suppress_tls=<optimized out>) at
./b-exim4-daemon-custom/build-Linux-x86_64/transports/smtp.c:3743<br>
ob = <optimized out><br>
yield = <optimized out><br>
save_errno = 489428962<br>
rc = <optimized out><br>
message = 0x0<br>
new_message_id =
"\020B\372\312\375\177\000\000\000\000\000\000\000\000\000\000("<br>
sx = 0x56111e49f028<br>
__FUNCTION__ = "smtp_deliver"<br>
pass_message = 0<br>
dane_held = 0<br>
tcw_done = 0<br>
tcw = 0<br>
SEND_MESSAGE = <optimized out><br>
#10 0x000056111d24b742 in smtp_transport_entry
(tblock=<optimized out>, addrlist=<optimized out>) at
./b-exim4-daemon-custom/build-Linux-x86_64/transports/smtp.c:5636<br>
thost = <optimized out><br>
first_addr = 0x56111e18b658<br>
host_is_expired = 0<br>
some_deferred = 0<br>
interface = 0x0<br>
rc = <optimized out><br>
host_af = 2<br>
message_defer = 0<br>
retry_host_key = 0x0<br>
retry_message_key = 0x0<br>
serialize_key = 0x0<br>
nexthost = 0x56111e6f0f78<br>
unexpired_hosts_tried = 2<br>
continue_host_tried = 0<br>
cutoff_retry = <optimized out><br>
defport = 25<br>
hosts_defer = 0<br>
hosts_fail = 0<br>
hosts_looked_up = <optimized out><br>
hosts_retry = 2<br>
hosts_serial = 0<br>
hosts_total = <optimized out><br>
total_hosts_tried = <optimized out><br>
expired = 0<br>
expanded_hosts = <optimized out><br>
pistring = 0x56111d267e71 ""<br>
tid = <optimized out><br>
__FUNCTION__ = "smtp_transport_entry"<br>
ob = 0x56111e19b4b8<br>
hostlist = 0x56111e6f1bd8<br>
host = 0x56111e6f1478<br>
#11 0x000056111d1a9682 in do_remote_deliveries
(fallback=fallback@entry=0) at
./b-exim4-daemon-custom/build-Linux-x86_64/deliver.c:4736<br>
fd = 9<br>
h = <optimized out><br>
address_count_max = <optimized out><br>
use_initgroups = 0<br>
tp = 0x56111e19b380<br>
gid = 110<br>
pfd = {8, 9}<br>
anchor = <optimized out><br>
addr = <optimized out><br>
pid = 0<br>
multi_domain = 1<br>
pipe_done = 1<br>
last = <optimized out><br>
panicmsg = <optimized out><br>
uid = 106<br>
address_count = <optimized out><br>
next = <optimized out><br>
serialize_key = 0x0<br>
delivery_count = 0<br>
parmax = 2<br>
poffset = <optimized out><br>
__FUNCTION__ = "do_remote_deliveries"<br>
#12 0x000056111d1af579 in deliver_message
(id=id@entry=0x56111e18b239 "1noNQY-0003Vx-PC",
forced=forced@entry=0, give_up=give_up@entry=0) at
./b-exim4-daemon-custom/build-Linux-x86_64/deliver.c:7255<br>
i = <optimized out><br>
rc = <optimized out><br>
final_yield = 0<br>
now = <optimized out><br>
addr_last = <optimized out><br>
filter_message = 0x0<br>
process_recipients = <optimized out><br>
dbblock = {dbptr = 0x56111e430140, lockfd = 7}<br>
dbm_file = <optimized out><br>
info = <optimized out><br>
__FUNCTION__ = "deliver_message"<br>
RECIP_QUEUE_FAILED = <optimized out><br>
#13 0x000056111d1e1a27 in queue_run (start_id=start_id@entry=0x0,
stop_id=stop_id@entry=0x0, recurse=recurse@entry=0) at
./b-exim4-daemon-custom/build-Linux-x86_64/queue.c:675<br>
rc = <optimized out><br>
pid = 0<br>
status = 0<br>
statbuf = {st_dev = 51744, st_ino = 131089, st_nlink = 1,
st_mode = 33184, st_uid = 106, st_gid = 110, __pad0 = 0, st_rdev =
0, st_size = 2458, st_blksize = 4096, st_blocks = 8, st_atim =
{tv_sec = 1652179763, tv_nsec = 725506665}, st_mtim = {tv_sec =
1652179754, tv_nsec = 781257313}, st_ctim = {tv_sec = 1652179754,
tv_nsec = 781257313}, __glibc_reserved = {0, 0, 0}}<br>
buffer =
"\000H\372\312\375\177\000\000p\030&\035\021V\000\000
\017&\035\021V\000\000\360H\372\312\375\177\000\000p\030&\035\021V\000\000\360H\372\312\375\177\000\000\006\000\000\000\000\000\000\000\\_\033\035\021V\000\000~\001\000\000+\000\000\000\030\242\030\036\021V\000\000\b\000\000\000\060\000\000\000\000J\372\312\375\177\000\000
I\372\312\375\177\000\000\000\365\037[\027EN\374\001\000\000\000\000\000\000\000q~&\035\021V\000\000\001\000\000\000\000\000\000\000籽]\331\177\000\000\a\000\000\000\000\000\000\000\020#\030\036\021V\000\000\bO\376\312\375\177\000\000\264ٶ]\331\177\000\000\257\330\030\036\021V\000\000\000\365\037[\027EN\374acl_checx\377\377\377\377\377\377\377"...<br>
pfd = {3, 5}<br>
fq = 0x56111e18b230<br>
reset_point1 = 0x56111e18b228<br>
i = 0<br>
force_delivery = 0<br>
selectstring_regex = 0x0<br>
selectstring_regex_sender = 0x0<br>
log_detail = 0x56111e18b218 "pid=13528"<br>
subcount = 0<br>
subdirs =
"\000\000\000\000\000\000\000\000\277\000\000\000\021V\000\000\240\036,\035\021V\000\000\240\272*\035\021V\000\000x\000\000\000P\000\000\000\000\365\037[\027EN\374\070&\031\036\021V\000\000\035U!\035\021V\000"<br>
qpid = {0, 0, 0, 0}<br>
single_id = 0<br>
__FUNCTION__ = "queue_run"<br>
single_item_retry = <optimized out><br>
#14 0x000056111d192e7a in main (argc=2, cargv=0x7ffdcafe4f08) at
./b-exim4-daemon-custom/build-Linux-x86_64/exim.c:4797<br>
argv = 0x7ffdcafe4f08<br>
arg_receive_timeout = -1<br>
arg_smtp_receive_timeout = -1<br>
arg_error_handling = 0<br>
filter_sfd = -1<br>
filter_ufd = -1<br>
group_count = <optimized out><br>
i = <optimized out><br>
rv = <optimized out><br>
list_queue_option = <optimized out><br>
msg_action = 0<br>
msg_action_arg = -1<br>
namelen = <optimized out><br>
queue_only_reason = 0<br>
recipients_arg = <optimized out><br>
sender_address_domain = 0<br>
test_retry_arg = -1<br>
test_rewrite_arg = -1<br>
original_egid = <optimized out><br>
arg_queue_only = <optimized out><br>
bi_option = <optimized out><br>
checking = <optimized out><br>
count_queue = <optimized out><br>
expansion_test = <optimized out><br>
extract_recipients = <optimized out><br>
flag_G = <optimized out><br>
flag_n = <optimized out><br>
forced_delivery = 0<br>
f_end_dot = <optimized out><br>
deliver_give_up = 0<br>
list_queue = 0<br>
list_options = <optimized out><br>
list_config = <optimized out><br>
local_queue_only = <optimized out><br>
more = 1<br>
one_msg_action = 0<br>
opt_D_used = <optimized out><br>
queue_only_set = <optimized out><br>
receiving_message = <optimized out><br>
sender_ident_set = <optimized out><br>
session_local_queue_only = <optimized out><br>
unprivileged = 0<br>
removed_privilege = <optimized out><br>
usage_wanted = <optimized out><br>
verify_address_mode = <optimized out><br>
verify_as_sender = <optimized out><br>
rcpt_verify_quota = <optimized out><br>
version_printed = <optimized out><br>
alias_arg = <optimized out><br>
called_as = 0x56111d267e71 ""<br>
cmdline_syslog_name = <optimized out><br>
start_queue_run_id = <optimized out><br>
stop_queue_run_id = <optimized out><br>
expansion_test_message = <optimized out><br>
ftest_domain = <optimized out><br>
ftest_localpart = <optimized out><br>
ftest_prefix = <optimized out><br>
ftest_suffix = <optimized out><br>
log_oneline = <optimized out><br>
malware_test_file = <optimized out><br>
real_sender_address = <optimized out><br>
originator_home = 0x56111d25b0bd "/"<br>
sz = <optimized out><br>
pw = 0x56111d303900 <pwcopy><br>
statbuf = {st_dev = 22, st_ino = 3, st_nlink = 1, st_mode
= 8576, st_uid = 0, st_gid = 5, __pad0 = 0, st_rdev = 34816,
st_size = 0, st_blksize = 1024, st_blocks = 0, st_atim = {tv_sec =
1652179760, tv_nsec = 425246092}, st_mtim = {tv_sec = 1652179760,
tv_nsec = 425246092}, st_ctim = {tv_sec = 1652165838, tv_nsec =
445246653}, __glibc_reserved = {0, 0, 0}}<br>
passed_qr_pid = <optimized out><br>
passed_qr_pipe = <optimized out><br>
group_list = <error reading variable group_list (value
requires 262144 bytes, which is more than max-value-size)><br>
info_flag = <optimized out><br>
info_stdout = <optimized out><br>
rsopts = {0x56111d265b3d "f", 0x56111d28d368 "ff",
0x56111d2819f4 "r", 0x56111d25fd6e "rf", 0x56111d25fd71 "rff"}<br>
__FUNCTION__ = "main"<br>
quit) <br>
<br>
</p>
</body>
</html>