<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 04.03.2018 16:25, Reio Remma wrote:<br>
</div>
<blockquote type="cite"
cite="mid:4feb0f1a-d5e4-3329-510c-52aacd4b1230@mrstuudio.ee">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Hello!<br>
<br>
I'm having crashes with LMTP delivery when user is over quota on
the latest CentOS 7.4 with the latest Dovecot 2.3.0.1 from Dovecot
repo.<br>
<br>
I see the issue has been fixed on January 17, but it doesn't seem
to have made it into 2.3.0.1 (I compared with the source from <a
class="moz-txt-link-freetext"
href="https://dovecot.org/releases/2.3/dovecot-2.3.0.1.tar.gz"
moz-do-not-send="true">https://dovecot.org/releases/2.3/dovecot-2.3.0.1.tar.gz</a>).<br>
<br>
<a class="moz-txt-link-freetext"
href="https://github.com/dovecot/core/commit/2bf919786518d138cc07d9cc21e14ad5e07e5e56#diff-7964e00c46515956a959fa47fc86d605"
moz-do-not-send="true">https://github.com/dovecot/core/commit/2bf919786518d138cc07d9cc21e14ad5e07e5e56#diff-7964e00c46515956a959fa47fc86d605</a><br>
<br>
I also noticed a similar construct being used on line 465
(rcpt->rcpt.rcpt->path) that was causing the segfault on the
above commit on line 136.<br>
<br>
struct smtp_address *rcpt_to = rcpt->rcpt.rcpt->path;<br>
<br>
Should that also use <span class="blob-code-inner">rcpt->rcpt.<span
class="pl-smi">path</span>; ?</span><br>
<br>
Thanks from the other side of the gulf!<br>
Reio<br>
<br>
</blockquote>
<br>
I now managed to coax a core dump out of CentOS - here it is.<br>
<br>
Thanks!<br>
Reio<br>
<br>
Reading symbols from /usr/libexec/dovecot/lmtp...Reading symbols
from /usr/lib/debug/usr/libexec/dovecot/lmtp.debug...done.<br>
done.<br>
[New LWP 18733]<br>
[Thread debugging using libthread_db enabled]<br>
Using host libthread_db library "/lib64/libthread_db.so.1".<br>
Core was generated by `dovecot/lmtp -L'.<br>
Program terminated with signal 11, Segmentation fault.<br>
#0 smtp_server_reply (_cmd=0x0, status=552, enh_code=0x562468e05050
"5.2.2", fmt=0x562468e05042 "<%s> %s") at
smtp-server-reply.c:210<br>
210 i_assert(cmd->replies_expected <= 1);<br>
(gdb) bt full<br>
#0 smtp_server_reply (_cmd=0x0, status=552, enh_code=0x562468e05050
"5.2.2", fmt=0x562468e05042 "<%s> %s") at
smtp-server-reply.c:210<br>
cmd = <error reading variable cmd (Cannot access memory
at address 0x20)><br>
args = {{gp_offset = 1790721792, fp_offset = 22052,
overflow_arg_area = 0x56246abc3f14, reg_save_area = 0x56246ab70b58}}<br>
__func__ = "smtp_server_reply"<br>
#1 0x0000562468e034d7 in lmtp_local_deliver
(session=0x56246abe2cd8, src_mail=0x56246abde0a8,
rcpt=0x56246abada50, trans=0x56246abc3df8, cmd=0x56246ab81868,
local=0x56246ab7cba0) at lmtp-local.c:621<br>
set_parser = <optimized out><br>
line = <optimized out><br>
str = 0x56246ab70068<br>
proxy_data = {proto = SMTP_PROXY_PROTOCOL_LMTP, source_ip =
{family = 0, u = {ip6 = {__in6_u = {__u6_addr8 = '\000' <repeats
15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 =
{0, 0, 0, 0}}}, ip4 = {s_addr = 0}}},<br>
source_port = 0, helo = 0x56246abc3c80 "bwo.mrstuudio.ee",
login = 0x0, ttl_plus_1 = 0, timeout_secs = 0, extra_fields = 0x0,
extra_fields_count = 0}<br>
delivery_time_started = {tv_sec = 1520176597, tv_usec =
704043}<br>
sets = <optimized out><br>
rcpt_user = 0x56246abe30e8<br>
mail_set = <optimized out><br>
username = <optimized out><br>
rcpt_idx = 0<br>
smtp_set = 0x56246abcf448<br>
lda_set = 0x56246abcf4b8<br>
ns = <optimized out><br>
rcpt_to = 0x56246abc3f00<br>
trcpt = 0x56246abc3ec0<br>
storage = 0x56246abe8838<br>
mail_error = MAIL_ERROR_NOQUOTA<br>
ret = <optimized out><br>
client = 0x56246abaf538<br>
service_user = <optimized out><br>
dctx = {pool = 0x56246abe2cb0, set = 0x56246abcf4b8,
smtp_set = 0x56246abcf448, session = 0x56246abe2cd8,
session_time_msecs = 24, delivery_time_started = {tv_sec =
1520176597, tv_usec = 704043}, dup_db = 0x0,<br>
session_id = 0x56246abadab0 "PAN2KNUNnFotSQAAinc3nQ",
src_mail = 0x56246abde0a8, mail_from = 0x56246abc3e98, mail_params =
{auth = 0x0, body = {type = SMTP_PARAM_MAIL_BODY_TYPE_UNSPECIFIED,
ext = 0x0}, envid = 0x0,<br>
ret = SMTP_PARAM_MAIL_RET_UNSPECIFIED, size = 0,
extra_params = {arr = {buffer = 0x0, element_size = 0}, v = 0x0,
v_modifiable = 0x0}}, rcpt_to = 0x56246abc3f00, rcpt_params = {orcpt
= {addr_type = 0x0,<br>
addr = 0x56246abc3f00, addr_raw = 0x0}, notify =
SMTP_PARAM_RCPT_NOTIFY_UNSPECIFIED, extra_params = {arr = {buffer =
0x0, element_size = 0}, v = 0x0, v_modifiable = 0x0}}, rcpt_user =
0x56246abe30e8,<br>
rcpt_default_mailbox = 0x562468e05064 "INBOX", dest_mail =
0x0, cache = 0x56246abe2df8, tempfail_error = 0x0,
tried_default_save = true, saved_mail = false, save_dest_mail =
false, mailbox_full = false, dsn = false}<br>
input = <optimized out><br>
var_table = <optimized out><br>
error = 0x56246abfb3a0 "Kasutaja postkast on täis."<br>
#2 lmtp_local_deliver_to_rcpts (session=0x56246abe2cd8,
trans=0x56246abc3df8, cmd=0x56246ab81868, local=0x56246ab7cba0) at
lmtp-local.c:657<br>
rcpt = 0x56246abada50<br>
first_uid = 4294967295<br>
src_mail = 0x56246abde0a8<br>
count = 1<br>
i = 0<br>
rcpts = <optimized out><br>
#3 lmtp_local_data (client=client@entry=0x56246abaf538,
cmd=cmd@entry=0x56246ab81868, trans=trans@entry=0x56246abc3df8,
input=<optimized out>) at lmtp-local.c:734<br>
local = 0x56246ab7cba0<br>
session = 0x56246abe2cd8<br>
old_uid = 0<br>
#4 0x0000562468e02123 in cmd_data_finish (trans=0x56246abc3df8,
cmd=0x56246ab81868, client=0x56246abaf538) at commands.c:144<br>
state = 0x56246abaf5c0<br>
input_proxy = 0x0<br>
input_msg = 0x0<br>
input_local = 0x56246abd5348<br>
inputs = {0x0, 0x56246abcd108, 0x0}<br>
#5 cmd_data_continue (conn_ctx=0x56246abaf538, cmd=0x56246ab81868,
trans=0x56246abc3df8) at commands.c:190<br>
client = 0x56246abaf538<br>
state = 0x56246abaf5c0<br>
data_input = <optimized out><br>
data = <optimized out><br>
size = 1750<br>
ret = <optimized out><br>
__func__ = "cmd_data_continue"<br>
#6 0x00007fc8abd7a250 in cmd_data_handle_input (cmd=0x56246ab81868)
at smtp-server-cmd-data.c:199<br>
conn = 0x56246abbeae0<br>
callbacks = 0x562469006720 <lmtp_callbacks><br>
command = 0x56246ab81868<br>
data_cmd = 0x56246abc3148<br>
ret = <optimized out><br>
__func__ = "cmd_data_handle_input"<br>
#7 0x00007fc8abe0cdf5 in io_loop_call_io (io=0x56246abbf020) at
ioloop.c:614<br>
ioloop = 0x56246ab76c30<br>
t_id = 2<br>
__func__ = "io_loop_call_io"<br>
#8 0x00007fc8abe0e69f in io_loop_handler_run_internal
(ioloop=ioloop@entry=0x56246ab76c30) at ioloop-epoll.c:222<br>
ctx = 0x56246ab82190<br>
events = <optimized out><br>
list = 0x56246abafd60<br>
io = <optimized out><br>
tv = {tv_sec = 299, tv_usec = 999415}<br>
events_count = <optimized out><br>
msecs = <optimized out><br>
ret = 1<br>
i = 0<br>
call = <optimized out><br>
---Type <return> to continue, or q <return> to quit---<br>
__func__ = "io_loop_handler_run_internal"<br>
#9 0x00007fc8abe0cef2 in io_loop_handler_run
(ioloop=ioloop@entry=0x56246ab76c30) at ioloop.c:666<br>
__func__ = "io_loop_handler_run"<br>
#10 0x00007fc8abe0d118 in io_loop_run (ioloop=0x56246ab76c30) at
ioloop.c:639<br>
__func__ = "io_loop_run"<br>
#11 0x00007fc8abd8ace3 in master_service_run
(service=0x56246ab76ac0, callback=callback@entry=0x562468e013d0
<client_connected>) at master-service.c:767<br>
No locals.<br>
#12 0x0000562468e011a6 in main (argc=2, argv=0x56246ab76890) at
main.c:159<br>
set_roots = {0x7fc8ac095fa0
<smtp_submit_setting_parser_info>, 0x7fc8ac5f6ba0
<lda_setting_parser_info>, 0x562469006560
<lmtp_setting_parser_info>, 0x0}<br>
service_flags = <optimized out><br>
storage_service_flags = <optimized out><br>
tmp_base_dir = 0x56246ab6e040 "tp data)"<br>
c = <optimized out><br>
error = 0x0<br>
<br>
</body>
</html>