[dovecot/core] f077ac: director: Add director_output_buffer_size setting

GitHub noreply at github.com
Wed Nov 8 09:30:14 EET 2017


  Branch: refs/heads/master-2.2
  Home:   https://github.com/dovecot/core
  Commit: f077ace7f178861b7a5955e2e82cca76b9cc06d1
      https://github.com/dovecot/core/commit/f077ace7f178861b7a5955e2e82cca76b9cc06d1
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c
    M src/director/director-settings.c
    M src/director/director-settings.h

  Log Message:
  -----------
  director: Add director_output_buffer_size setting

This allows configuring the max buffer size for outgoing connections.
Previously it was hardcoded to 10 MB, which wasn't necessarily enough for
very busy directors.


  Commit: 750a9335592fad0129c81537570782a88c641a1c
      https://github.com/dovecot/core/commit/750a9335592fad0129c81537570782a88c641a1c
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c

  Log Message:
  -----------
  director: Close director connection immediately when output buffer is full

Only the ostream was closed, which didn't actually cause the disconnection
until the other side closed the connection.


  Commit: 04fd0f911f5aa2c8fe3389a698d3809057749169
      https://github.com/dovecot/core/commit/04fd0f911f5aa2c8fe3389a698d3809057749169
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/doveadm/doveadm-director.c

  Log Message:
  -----------
  doveadm director: Parse timestamp parameters with str_to_time()


  Commit: 716a8b06fae32cf3a7ce13a859c334f4c963dc5b
      https://github.com/dovecot/core/commit/716a8b06fae32cf3a7ce13a859c334f4c963dc5b
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c

  Log Message:
  -----------
  director: Fix updating director connection's last_output timestamp

It was previously updated only in ostream's flush callback, which was called
only when there were a lot of output. This only caused the "last output"
timestamp in disconnection log lines to be wrong.


  Commit: 394f44171543732c3eba16cd27fa41a1824d2225
      https://github.com/dovecot/core/commit/394f44171543732c3eba16cd27fa41a1824d2225
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c
    M src/director/director-connection.h

  Log Message:
  -----------
  director: Add director_connection_get_status()

Can be used to access connection-specific status information.


  Commit: 7fb8ad55486e72785379b607f455c291f85eafa0
      https://github.com/dovecot/core/commit/7fb8ad55486e72785379b607f455c291f85eafa0
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c
    M src/director/director-connection.h

  Log Message:
  -----------
  director: Track connections' last ping time


  Commit: 66a5379a9347388aee730998b5befbf592eae8ab
      https://github.com/dovecot/core/commit/66a5379a9347388aee730998b5befbf592eae8ab
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c
    M src/director/director.c
    M src/director/director.h

  Log Message:
  -----------
  director: Track show long the last ring sync took.


  Commit: 970410cb5903db886c8a68f31ef68ef34ad54af8
      https://github.com/dovecot/core/commit/970410cb5903db886c8a68f31ef68ef34ad54af8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/doveadm-connection.c
    M src/doveadm/doveadm-director.c

  Log Message:
  -----------
  doveadm director ring status: Add more fields related to connection status


  Commit: d17e2470d00df2bcfa0a606125d980745a53fdac
      https://github.com/dovecot/core/commit/d17e2470d00df2bcfa0a606125d980745a53fdac
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/doveadm-connection.c

  Log Message:
  -----------
  director: Show each director connection in doveadm DIRECTOR-LIST

Previously the host was shown only once, regardless of how many connections
it had. This especially helps when there are just two directors, but also
can be useful when showing incoming/outgoing connections that are still
in handshaking phase.


  Commit: 2786a96b7d8082a44533959fe27165e5a6683610
      https://github.com/dovecot/core/commit/2786a96b7d8082a44533959fe27165e5a6683610
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/user-directory.c

  Log Message:
  -----------
  director: Fix off-by-one when checking if user weakness is stuck

When the weakness was exactly at the second, the weakness wasn't detected
and the next expiration timeout was removed entirely. This shouldn't have
caused any bigger problems, because another user lookup on the following
second would have then detected the weakness, removed the user and restored
the next expiration timeout.


  Commit: aa159ff078509410f71b7b9894e3fb8558558b3f
      https://github.com/dovecot/core/commit/aa159ff078509410f71b7b9894e3fb8558558b3f
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/user-directory.c

  Log Message:
  -----------
  director: Don't recreate timeout on every user lookup

Recreate it only when the timeout should change.


  Commit: fc4595194f362ee9be37d56a4652c2b12d63c32f
      https://github.com/dovecot/core/commit/fc4595194f362ee9be37d56a4652c2b12d63c32f
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/lib/strescape.c

  Log Message:
  -----------
  lib: str_tabunescape() - optimize initial escape char lookup

strchr() is faster than looping ourself.


  Commit: aa9aca0b0194c40d15d3bb4c2c9f00ef6b895ded
      https://github.com/dovecot/core/commit/aa9aca0b0194c40d15d3bb4c2c9f00ef6b895ded
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/lib/strescape.c

  Log Message:
  -----------
  lib: t_strsplit_tabescaped() - don't create unnecessary data stack mempool

unsafe_data_stack_pool is more efficient to use


  Commit: 53ab218c5b011080a7b09003f14c7344992b8db5
      https://github.com/dovecot/core/commit/53ab218c5b011080a7b09003f14c7344992b8db5
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/lib/strescape.c
    M src/lib/strescape.h

  Log Message:
  -----------
  lib: Implement t_strsplit_tabescaped_inplace()

This is a more efficient version of t_strsplit_tabescaped(), which modifies
the input string instead of duplicating it.


  Commit: 678db9d5ab03ca82e079e006237012a5113f04af
      https://github.com/dovecot/core/commit/678db9d5ab03ca82e079e006237012a5113f04af
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/lib/strfuncs.c

  Log Message:
  -----------
  lib: *_strsplit() - implement more efficient version for a single separator char


  Commit: fade87f219286296456e1b2cecd34b0575e9439b
      https://github.com/dovecot/core/commit/fade87f219286296456e1b2cecd34b0575e9439b
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/lib/net.c

  Log Message:
  -----------
  lib: net_ip2addr() - Optimize by allocating destination memory immediately

It doesn't really matter if we allocate a few extra bytes.


  Commit: 3f0c3d58e777d468233ee7529b9e68aa18d0baa5
      https://github.com/dovecot/core/commit/3f0c3d58e777d468233ee7529b9e68aa18d0baa5
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/lib/net.c
    M src/lib/test-net.c

  Log Message:
  -----------
  lib: net_addr2ip() - Optimize for parsing IPv4 addresses


  Commit: fdd95cfc4276ede5076c09efb4dea88bf1aba885
      https://github.com/dovecot/core/commit/fdd95cfc4276ede5076c09efb4dea88bf1aba885
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c

  Log Message:
  -----------
  director: Use t_strsplit_tabescaped_inplace() for director connection input


  Commit: 4f989891800a2e2af4622967e418e3f97254eab6
      https://github.com/dovecot/core/commit/4f989891800a2e2af4622967e418e3f97254eab6
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/mail-host.c
    M src/director/mail-host.h

  Log Message:
  -----------
  director: Add mail_host.ip_str

This avoids having to use net_ip2addr() all the time to convert it into a
string.


  Commit: 8a54922b731c12218dfec38e3b4beac1d5551e33
      https://github.com/dovecot/core/commit/8a54922b731c12218dfec38e3b4beac1d5551e33
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-host.c
    M src/director/director-host.h

  Log Message:
  -----------
  director: Add director_host.ip_str

This avoids having to use net_ip2addr() all the time to convert it into a
string.


  Commit: 5814efc2ff8ae599b4b350f1f0af23dd154a6858
      https://github.com/dovecot/core/commit/5814efc2ff8ae599b4b350f1f0af23dd154a6858
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c
    M src/director/director-host.c
    M src/director/director.c
    M src/director/doveadm-connection.c
    M src/director/mail-host.c

  Log Message:
  -----------
  director: Use *_host.ip_str to avoid net_ip2addr() calls


  Commit: 0b04f0a0774ade79933da4a0dbc8c52ab39c0874
      https://github.com/dovecot/core/commit/0b04f0a0774ade79933da4a0dbc8c52ab39c0874
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-request.c
    M src/director/director-request.h
    M src/director/login-connection.c

  Log Message:
  -----------
  director: Change request callback to take mail_host parameter

This allows accessing the IP address both as struct and as string without
any conversions.


  Commit: 8d3a9d0912d15233465871b657a226fdcc5cf343
      https://github.com/dovecot/core/commit/8d3a9d0912d15233465871b657a226fdcc5cf343
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/login-connection.c

  Log Message:
  -----------
  director: Avoid str_printfa() in login_host_callback()

Optimizes the CPU usage.


  Commit: 26ef9db37eb3f81c47ae6250829cad919d63281d
      https://github.com/dovecot/core/commit/26ef9db37eb3f81c47ae6250829cad919d63281d
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c

  Log Message:
  -----------
  director: Avoid str_printfa() in director_connection_send_users()

Optimizes the CPU usage.


  Commit: 0d9c0bec85177f4f9da40348a5c82de9655814a3
      https://github.com/dovecot/core/commit/0d9c0bec85177f4f9da40348a5c82de9655814a3
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/lib/strnum.c

  Log Message:
  -----------
  lib: str_parse/to_*int*() - minor optimization


  Commit: dac09006158bc6f6512b1a68e037da3adf353961
      https://github.com/dovecot/core/commit/dac09006158bc6f6512b1a68e037da3adf353961
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c

  Log Message:
  -----------
  director: Don't block too long when sending users during director handshake

All the other work is blocked while the users are being sent.


  Commit: 2ab1368ce955c31fd4442a30b2aeed17524a54fb
      https://github.com/dovecot/core/commit/2ab1368ce955c31fd4442a30b2aeed17524a54fb
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c

  Log Message:
  -----------
  director: Include peak output buffer size in director connection log messages


  Commit: 46f33a010ce498b9d2da21b857032cac598a66fb
      https://github.com/dovecot/core/commit/46f33a010ce498b9d2da21b857032cac598a66fb
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c

  Log Message:
  -----------
  director: Deduplicate code into director_connection_set_connected()


  Commit: e9436b3bbc12255f37e843a77debba3f755fc2f4
      https://github.com/dovecot/core/commit/e9436b3bbc12255f37e843a77debba3f755fc2f4
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-connection.c

  Log Message:
  -----------
  director: Include used CPU secs in director connection log messages

It's counting the process's full CPU seconds used since the handshake
started, so it's not specific to the connection itself. Still, this is
likely to be very useful in debugging whether a slow handshake was due
to CPU usage or something else.


  Commit: 0ff0c5737ee4eae83b715896aa57ca663072a3d9
      https://github.com/dovecot/core/commit/0ff0c5737ee4eae83b715896aa57ca663072a3d9
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/doveadm-connection.c

  Log Message:
  -----------
  director: Log whenever HOST-RESET-USERS is used


  Commit: cca6aef9dd68005bc777717f54e9a0315a1f3759
      https://github.com/dovecot/core/commit/cca6aef9dd68005bc777717f54e9a0315a1f3759
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director.c

  Log Message:
  -----------
  director: Log an error if login process sends unexpected reply to KICK* commands


  Commit: 2d95f36875bf9a0f1b973f4b892e8c8523e4693d
      https://github.com/dovecot/core/commit/2d95f36875bf9a0f1b973f4b892e8c8523e4693d
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director-request.c
    M src/director/director.h
    M src/director/main.c

  Log Message:
  -----------
  director: Show in process title how many requests are being delayed.


  Commit: dde10135cf9b211c0aed302e0a4d846088e85968
      https://github.com/dovecot/core/commit/dde10135cf9b211c0aed302e0a4d846088e85968
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director.c
    M src/director/director.h
    M src/director/main.c

  Log Message:
  -----------
  director: Show in process title how many users are being kicked.


  Commit: a65be8295754f957e61881c48022052aedbb738a
      https://github.com/dovecot/core/commit/a65be8295754f957e61881c48022052aedbb738a
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/doveadm-connection.c

  Log Message:
  -----------
  director: Make sure HOST-RESET-USERS isn't used with max_moving_users=0

The reset command would just hang in that case. doveadm would never have
sent this, so this is just an extra sanity check.


  Commit: f9895b6f9eb19f0f1b0f7210a899e525d1317f16
      https://github.com/dovecot/core/commit/f9895b6f9eb19f0f1b0f7210a899e525d1317f16
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/main.c
    M src/director/notify-connection.c
    M src/director/notify-connection.h

  Log Message:
  -----------
  director: Support multiple proxy-notify connections


  Commit: 8d9c7b3bbf887fd8b65ae3fbecb9717d94e1be4d
      https://github.com/dovecot/core/commit/8d9c7b3bbf887fd8b65ae3fbecb9717d94e1be4d
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/main.c
    M src/director/notify-connection.c
    M src/director/notify-connection.h

  Log Message:
  -----------
  director: Allow proxy-notify to optionally be a socket

Dovecot isn't using this currently, but it can be useful if external
services want to send notifications.


  Commit: 84acddcbaff0f3a55f27e5cb450ba808282c8fa4
      https://github.com/dovecot/core/commit/84acddcbaff0f3a55f27e5cb450ba808282c8fa4
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/login-common/login-settings.c
    M src/login-common/login-settings.h
    M src/login-common/main.c

  Log Message:
  -----------
  *-login: Add login_proxy_notify_path setting to configure proxy-notify path

A single FIFO can be a bottleneck, so this could be set to e.g.:

login_proxy_notify_path = proxy-notify%1R{pid}

or:

login_proxy_notify_path = proxy-notify%10N{pid}


  Commit: 7998cdfb02aaef04f01714f9f5cdb9fc0f8931ae
      https://github.com/dovecot/core/commit/7998cdfb02aaef04f01714f9f5cdb9fc0f8931ae
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/director.c
    M src/director/director.h
    M src/director/main.c

  Log Message:
  -----------
  director: Add kick_callback to director

This callback gets called whenever director has performed
a kick.


  Commit: 6105be5255a1848e5da38fac2d1e41a0b1657352
      https://github.com/dovecot/core/commit/6105be5255a1848e5da38fac2d1e41a0b1657352
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M src/director/doveadm-connection.c
    M src/director/doveadm-connection.h
    M src/director/main.c

  Log Message:
  -----------
  director: Limit max kicking count


  Commit: 77ecdbbcbc87e1dcf8a39586a7546cb03c0ad420
      https://github.com/dovecot/core/commit/77ecdbbcbc87e1dcf8a39586a7546cb03c0ad420
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-08 (Wed, 08 Nov 2017)

  Changed paths:
    M src/director/director-settings.c
    M src/director/director-settings.h
    M src/director/doveadm-connection.c

  Log Message:
  -----------
  director: Add director_max_parallel_moves/kicks settings

The director_max_parallel_moves setting controls the default limit, which
can still be increased by explicitly using the doveadm director flush
--max-parallel" parameter.


  Commit: e10b18327ea49dfa2cb9bacb811be2d388375354
      https://github.com/dovecot/core/commit/e10b18327ea49dfa2cb9bacb811be2d388375354
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-08 (Wed, 08 Nov 2017)

  Changed paths:
    M src/lib-storage/index/index-storage.c

  Log Message:
  -----------
  lib-storage: When copying mails, copy also empty cache fields

This mainly means that it copies cache fields for nonexistent message
headers. Those are still important, because otherwise Dovecot doesn't know
whether they exist or not.


Compare: https://github.com/dovecot/core/compare/dc1e78618d75...e10b18327ea4


More information about the dovecot-cvs mailing list