Re: The end of Dovecot Director?

2022-11-02 Thread Brad Schuetz

On 11/2/22 03:54, Aki Tuomi wrote:

On 02/11/2022 11:55 EET Frank Wall  wrote:

  
On 2022-11-02 09:11, Aki Tuomi wrote:

You can also see the email sent by others which shows how you can do
this without replication, using proxy and passdb to direct users to
right backend. Which is basically what director does.

It's not the same thing.


It is not critical functionality. You can feasibly run a two-node
dovecot system on NFS without having director.

It seems to be critical enough to offer a replacement for paying
customers, while at the same time leaving the community edition
with no valid replacement.


Ciao
- Frank

Can you tell me what kind of functionality you are unable to achieve with the 
passdb solution?

Aki


Can you tell us what you are gaining (other than monitarily) by removing a 
completely functionally working feature that numerous people are using?

Adding new paid features is one thing (i.e. nginx), taking away a feature to 
replace it with a paid feature is something completely different.

--
Brad



Re: [Dovecot] Two recent issues

2011-12-13 Thread Brad Schuetz
On 12/09/2011 09:58 PM, Timo Sirainen wrote:
> If auth process dies unexpectedly, master always logs an error, such as:
> 
> Dec 10 07:15:34 auth: Fatal: master: service(auth): child 27895 killed with 
> signal 11 (core dumped)
> 
> Anyway, "read(imap) failed: Connection reset by peer" can happen if you
> reach the service imap { process_limit }. But then there should be a
> warning logged about it also:
> 
> Dec 10 07:17:39 master: Warning: service(imap): process_limit reached, client 
> connections are being dropped
> 
> So, that error message alone shouldn't be happening..

Interesting, the log entries I provided were the only ones that did exist.

> If that happens, there would also be an error message logged about it.
> One thing that v2.0 doesn't log about is if auth socket gets
> disconnected, but that would result in different problems. v2.1 logs
> about that too.

The problem has vanished in the last couple of days.  When 2.1 comes out
I will upgrade and if the problem returns I'll see if it's logs have any
further information.

>> The second issue is lmtp/lda (tried both) delivery to a mailbox that has
>> filesystem quotas enabled and the group quota is maxed is resulting in
>> the below panic and crash.
>>
>> 11:21:07 [err] dovecot: lmtp(29691, admin@[redacted].com): Error:
>> o_stream_send_istream(/email/d/r/[redacted]/[redacted]/admin/Maildir/tmp/1323458467.M245978P29691.fenrir.omnis.com)
>> failed: Disk quota exceeded
>> 11:21:07 [crit] dovecot: lmtp(29691, admin@[redacted].com): Panic: file
>> ostream-zlib.c: line 144 (o_stream_zlib_send_flush): assertion failed:
>> (zs->avail_in == 0)
> 
> I couldn't reproduce this with my tests, but
> http://hg.dovecot.org/dovecot-2.0/rev/75daa638281b should fix it.
> 

This patch has corrected the issue I was seeing.  Thank you very much.


[Dovecot] Major bug with hardlinks and lmtp

2011-12-09 Thread Brad Schuetz
In working on trying to fix the crash issue from my last email I had
enabled LMTP delivery to try it out instead of using the LDA.

I have discovered that when a single piece of email is to be delivered
to multiple users the message is being hard linked instead of copied
into each mail box.  This is a major problem that makes LMTP unusable in
an environment where each mailbox has it's own UID since the hard linked
file will only be readable by one of the users.

I assume this is related to "maildir_copy_with_hardlinks=yes", however
this setting doesn't say anything about hardlinking across different
email accounts.

--
Brad Schuetz


[Dovecot] Two recent issues

2011-12-09 Thread Brad Schuetz
I've been using dovecot for years, been working great.  However recently
I've come across two issues.

The first issue unfortunately I have little information on, mail_debug
hasn't provided anything useful either (in fact it looks like the login
request that fails doesn't even get logged at all).

During the morning rush of email, this server has around 11k mailboxes
on it, it *appears* that one of the auth processes dies resulting in
"dovecot: imap-login: Error: read(imap) failed: Connection reset by
peer" errors followed by "dovecot: imap-login: Internal login failure
..." in the logs.

I've yet to get any useful debugging information on this error so I'm
not expecting much/any help on this one, but if anyone has any ideas on
how I can get more debug besides running strace 24/7 in the hopes it
catches something before the hard drive is full of strace output I'd
love to hear it.

The best I've gotten was a lucky strace once (at the time I didn't
realize it was so lucky or I would have saved the output) that indicated
the imap-login daemon was failing to connect to the auth process.

The second issue is lmtp/lda (tried both) delivery to a mailbox that has
filesystem quotas enabled and the group quota is maxed is resulting in
the below panic and crash.

This issue happens with 2.0.13, 2.0.15 and 2.0.16.

Here's the logs showing that it knows the disk quota is exceeded and
then a subsequent zlib panic.  Like it's trying to deliver it anyway.

-

11:21:07 [err] dovecot: lmtp(29691, admin@[redacted].com): Error:
o_stream_send_istream(/email/d/r/[redacted]/[redacted]/admin/Maildir/tmp/1323458467.M245978P29691.fenrir.omnis.com)
failed: Disk quota exceeded
11:21:07 [crit] dovecot: lmtp(29691, admin@[redacted].com): Panic: file
ostream-zlib.c: line 144 (o_stream_zlib_send_flush): assertion failed:
(zs->avail_in == 0)
11:21:07 [err] dovecot: lmtp(29691, admin@[redacted].com): Error: Raw
backtrace: /usr/lib64/dovecot/libdovecot.so.0 [0x345443ca90] ->
/usr/lib64/dovecot/libdovecot.so.0 [0x345443cae6] ->
/usr/lib64/dovecot/libdovecot.so.0 [0x345443c4a3] ->
/usr/lib64/dovecot/lib20_zlib_plugin.so [0x2ba2d31547f6] ->
/usr/lib64/dovecot/lib20_zlib_plugin.so [0x2ba2d315481b] ->
/usr/lib64/dovecot/libdovecot.so.0(o_stream_flush+0x2a) [0x345444f0ea]
-> /usr/lib64/dovecot/libdovecot-storage.so.0(maildir_save_finish+0x6b)
[0x3451c63b6b] -> /usr/lib64/dovecot/lib10_quota_plugin.so
[0x2ba2d2f4ce7a] ->
/usr/lib64/dovecot/libdovecot-storage.so.0(mailbox_save_finish+0x30)
[0x3451c2fbb0] ->
/usr/lib64/dovecot/libdovecot-storage.so.0(mail_storage_copy+0xb3)
[0x3451c2aae3] ->
/usr/lib64/dovecot/libdovecot-storage.so.0(maildir_copy+0x56)
[0x3451c6fd36] -> /usr/lib64/dovecot/lib10_quota_plugin.so
[0x2ba2d2f4d0ba] ->
/usr/lib64/dovecot/libdovecot-storage.so.0(mailbox_copy+0x5a)
[0x3451c301ba] -> /usr/lib64/dovecot/li
11:21:07 [err] dovecot: master: Error: service(lmtp): child 29691 killed
with signal 6 (core dumps disabled)

-

Attached is the current "doveadm config" output.

--
Brad Schuetz
# 2.0.16: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.18-274.12.1.el5 x86_64 CentOS release 5.7 (Final) 
auth_anonymous_username = anonymous
auth_cache_negative_ttl = 5 mins
auth_cache_size = 20 k
auth_cache_ttl = 10 mins
auth_debug = yes
auth_debug_passwords = no
auth_default_realm = 
auth_failure_delay = 0
auth_first_valid_uid = 500
auth_gssapi_hostname = 
auth_krb5_keytab = 
auth_last_valid_uid = 0
auth_master_user_separator = 
auth_mechanisms = plain login cram-md5
auth_realms = 
auth_socket_path = auth-userdb
auth_ssl_require_client_cert = no
auth_ssl_username_from_cert = no
auth_use_winbind = no
auth_username_chars = 
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
auth_username_format = 
auth_username_translation = 
auth_verbose = no
auth_verbose_passwords = no
auth_winbind_helper_path = /usr/bin/ntlm_auth
auth_worker_max_count = 30
base_dir = /var/run/dovecot
config_cache_size = 1 M
debug_log_path = /var/log/dovecot-debug.log
default_client_limit = 1000
default_idle_kill = 60
default_internal_user = dovecot
default_login_user = dovenull
default_process_limit = 100
default_vsz_limit = 256 M
deliver_log_format = msgid=%m, from=%f, size=%p, vsize=%w: %$
dict_db_config = 
director_doveadm_port = 0
director_mail_servers = 
director_servers = 
director_user_expire = 15 mins
disable_plaintext_auth = no
dotlock_use_excl = yes
doveadm_allowed_commands = 
doveadm_password = 
doveadm_proxy_port = 0
doveadm_socket_path = doveadm-server
doveadm_worker_count = 0
first_valid_gid = 1
first_valid_uid = 500
hostname = 
imap_capability = 
imap_client_workarounds = 
imap_id_log = 
imap_id_send = 
imap_idle_notify_interval = 2 mins
imap_logout_format = bytes=%i/%o
imap_max_line_length = 64 k
import_environment = TZ
info_log_path = 
last_valid_gid = 0
last_valid_uid = 0
lda_ma