Panic: file smtp-client-connection.c: line 1142 (smtp_client_connection_established)

2019-11-19 Thread Dirk via dovecot
I'm using dovecot in a multi server setup. Two directors forward pop3, imap and 
smtp to  backend dovecots with their central storage on NFS.
Yesterday I stumbled upon these log lines:

2019-11-18 20:17:51 lmtp(17274): Info: Connect from 172.22.1.6
2019-11-18 20:17:51 lmtp(17274): Panic: file smtp-client-connection.c: line 
1142 (smtp_client_connection_established): assertion failed: 
(!conn->connect_succeeded)
2019-11-18 20:17:51 lmtp(17274): Fatal: master: service(lmtp): child 17274 
killed with signal 6 (core not dumped - 
https://dovecot.org/bugreport.html#coredumps - set /proc/sys/fs/suid_dumpable 
to 2)

Is a core dump required to find the source of that error?

Thanks for any help!


$ doveconf -n
# 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf
# OS: Linux 4.9.0-8-amd64 x86_64
# Hostname: m03.company.com
auth_cache_negative_ttl = 65 secs
auth_cache_ttl = 3 mins
auth_cache_verify_password_with_worker = yes
auth_mechanisms = plain login
auth_verbose = yes
debug_log_path = /dev/stdout
default_client_limit = 10400
default_process_limit = 1024
default_vsz_limit = 1 G
deliver_log_format = msgid=%m: %s %{session_time} %$
director_mail_servers = 10.10.10.2 10.10.10.3
director_servers = 10.10.1.2 10.10.1.3
imap_id_log = *
imap_max_line_length = 2 M
import_environment = TZ CORE_OUTOFMEM CORE_ERROR
info_log_path = /dev/stdout
instance_name = dovecot_director
listen = 10.10.1.3,::
lmtp_proxy = yes
log_path = /dev/stderr
log_timestamp = "%Y-%m-%d %H:%M:%S "
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k 
session=<%{session}>
mail_max_userip_connections = 250
passdb {
  args = /etc/dovecot/sql/dovecot-dict-sql-passdb.conf
  driver = sql
  result_failure = return-fail
  result_internalfail = return-fail
  result_success = continue-ok
}
passdb {
  args = proxy=y starttls=any-cert master=direc...@m03.company.com 
pass=#hidden_use-P_to_show# nopassword=y
  driver = static
  skip = unauthenticated
}
pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, uidl=%u
protocols = imap lmtp pop3
service auth-worker {
  user = $default_internal_user
}
service director {
  fifo_listener login/proxy-notify {
mode = 0600
user = $default_login_user
  }
  inet_listener {
port = 9090
  }
  unix_listener director-userdb {
mode = 0600
user = vmail
  }
  unix_listener login/director {
mode = 0666
  }
}
service imap-login {
  executable = imap-login director
  process_min_avail = 2
  vsz_limit = 1 G
}
service lmtp {
  inet_listener lmtp {
port = 24
  }
  process_min_avail = 2
  unix_listener lmtp {
mode = 00
  }
  user = vmail
  vsz_limit = 1 G
}
service log {
  user = dovenull
}
service pop3-login {
  executable = pop3-login director
  process_min_avail = 2
  vsz_limit = 1 G
}
service pop3 {
  user = vmail
}
ssl_cert = 

Error: Mailbox INBOX: Broken file dovecot-uidlist: Invalid data

2019-10-29 Thread Dirk via dovecot
Hi list,

today a user reported messages are disappearing from his INBOX and I discovered 
a two digit number of mailboxes with broken dovecot-uidlist files.

The log says:

Oct 29 08:51:34 mail02 dovecot: 
lmtp(i...@example.com)<5270>: Error: Mailbox INBOX: 
Broken file /var/vmail/example.com/info/dovecot-uidlist line 88: Invalid data:

And the respective files do look broken:

4596 :1572344253.M529133P14861.mail03.example.com,S=53053,W=54233
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@4597
 :1572344797.M93833P15905.mail03.example.com,S=126866,W=129256

Setup : Behind a director I am running two dovecot backend servers sharing the 
vmail directory via NFS.

Do you have an idea where this might come from? How can I debug this further?

Cheers,
Dirk



LMTP Proxy failure using master login via destuser field

2019-03-17 Thread Dirk via dovecot
Hi list,
I set up dovecot as IMAP proxy using a master user to login into the backend 
and it works beautifully.  Next I set out to do LMTP proxying and I struggled 
(initially). 

I got the log message:
Mar 17 11:23:44 mail postfix/lmtp[2665]: 99A3F219C8: to=, 
relay=10.15.1.2[10.15.1.2]:24, delay=5.1, delays=4.9/0.05/0.01/0.07, dsn=5.1.1, 
status=bounced (host 10.15.1.2[10.15.1.2] said: 550 5.1.1 
<"joh...@doe.com*director"@mail.server.com> User doesn't exist: 
"joh...@doe.com*director"@mail.server.com (in reply to RCPT TO command))

My director's passdb setting looked like this:

passdb {
 driver = sql
 args = /etc/dovecot/sql/my-passdb.conf
 result_success = continue-ok
 result_failure = return-fail
 result_internalfail = return-fail
}

# Add director master user credentials if above succeeded
passdb {
 driver = static
 args = proxy=y starttls=any-cert \
 destuser=%u*direc...@example.com \
 pass=correcthorsebatterystaple \
 nopassword=y
 skip = unauthenticated
}

In the end I found that setting the `master` field instead of `destuser` solves 
the issue. It looks like LMTP does not know how to handle the master user 
separator although set. I this known/wanted behavior? Maybe this is something 
to mention on the wiki page, it took a while to figure this out...

Kind regards,
Dirk



Mit freundlichen Grüßen
Dirk Weise

DevOps Engineer

-- 
bitloft GmbH | Schulstraße 2 | D-42551 Velbert
www.bitloft.de | we...@bitloft.de

Telefon: +49 2051 40514-32

Geschäftsführer: Robin Clemens, Franz-Josef Wieneke
Amtsgericht Wuppertal HRB 17297 | USt-IDNr. DE121540053