[dovecot/core] 71aa99: director: Ignore refresh requests for already expi...

GitHub noreply at github.com
Sun Nov 26 13:30:14 EET 2017


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

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

  Log Message:
  -----------
  director: Ignore refresh requests for already expired user timestamps


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

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

  Log Message:
  -----------
  director: Replace USER command during handshake with "U"

This clearly differentiates the two commands and allows extending the USER
command with new parameters without mixing it up with the handshake-USER.


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

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

  Log Message:
  -----------
  director: Avoid USER loops when ring latency is over 1 second

Do this by adding a timestamp parameter to USER events. This way if it
takes over 1 second for the USER event to traverse the ring, it won't get
into an infinite loop getting the user updated over and over again.


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

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

  Log Message:
  -----------
  director: Avoid USER loops with >1s ring latency also with old directors

Do this by ignoring USER refreshes that were already updated recently.
The "recently" is calculated by director_user_expire/4 seconds ago, but
with an upper limit of 15 secs. This means that the USER loops can now
only exist if the director ring latency is above 15 seconds. (Once all
directors in the ring are running the new version, there's no looping
at any latency.)


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

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

  Log Message:
  -----------
  director: Delay sorting users until there are no more user iterators

This shouldn't have normally happened. Only when an outgoing handshake was
going on at the same time as a) another outgoing handshake was going on, or
b) doveadm was doing HOST-RESET-USERS


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

  Changed paths:
    M src/director/director-connection.c
    M src/director/director.c
    M src/director/director.h
    M src/director/doveadm-connection.c
    M src/director/test-user-directory.c
    M src/director/user-directory.c
    M src/director/user-directory.h

  Log Message:
  -----------
  director: Don't send USERs in handshake that were already sent between handshake

If the user was refreshed since the handshake was started, it means that
the same user was already sent to the other side (added to the stream
immediately after it was received/handled). There's no need to send it
again.

This fixes a potentally infinite handshake when users are rapidly changing
and the handshake iterator never sees the end of the list. (Each refreshed
user is moved to the end of the list, so handshaking can keep sending the
same user over and over again.)


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

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

  Log Message:
  -----------
  director: Include number of USERs received in disconnection log lines

Separate handshake and refresh USERs.


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

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

  Log Message:
  -----------
  director: Show number of incoming USERs/sec in ps title


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

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

  Log Message:
  -----------
  director: Include number of users sent in handshake in disconnection log lines


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

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

  Log Message:
  -----------
  director: DIRECTOR-LIST - Show number of USERs sent/received in "handshaking" state


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

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

  Log Message:
  -----------
  director: DIRECTOR-LIST - Add "ring " prefix to self's status

This is to make it a bit easier to understand the difference between a
connection's "handshaking" state vs. "ring handshaking" state.


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

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

  Log Message:
  -----------
  director: Log exactly how long PING was waited on before it timed out.


  Commit: 52065f18ba829be34060b05da249542e4330e97e
      https://github.com/dovecot/core/commit/52065f18ba829be34060b05da249542e4330e97e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-11-26 (Sun, 26 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_ping_idle/max_timeout setting.

director_ping_idle_timeout is used when there's otherwise no input coming
from the connection. Changed its default from 10 secs to 30 secs.

director_ping_max_timeout is used when the other director keeps sending
input, but among it is no PONG reply.


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

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

  Log Message:
  -----------
  director: Improve PING/PONG timeout errors and add new warnings

Log a warning if PING-PONG takes over 5 secs in total, or also if the
recipient notices that the PING took >= 5 seconds to receive.


Compare: https://github.com/dovecot/core/compare/7e6f293db826...1942cad5514e


More information about the dovecot-cvs mailing list