<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>