[dovecot/core] 154f91: director: Ignore refresh requests for already expi...

GitHub noreply at github.com
Sun Nov 26 13:00:12 EET 2017


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: 154f91726624265fce15097eb4bbbf6e55f8c477
      https://github.com/dovecot/core/commit/154f91726624265fce15097eb4bbbf6e55f8c477
  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: 05b7b8f14426b5fe5d016940eb5916033f0bc841
      https://github.com/dovecot/core/commit/05b7b8f14426b5fe5d016940eb5916033f0bc841
  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: b3e36790ca9e16d022118012b46ed50f73a45046
      https://github.com/dovecot/core/commit/b3e36790ca9e16d022118012b46ed50f73a45046
  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: edaa9f5c32594e7af8c0b862cd3a0c188d55ac7b
      https://github.com/dovecot/core/commit/edaa9f5c32594e7af8c0b862cd3a0c188d55ac7b
  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: efd72f0559ac15585ec5f48893f2e13eb6cf7738
      https://github.com/dovecot/core/commit/efd72f0559ac15585ec5f48893f2e13eb6cf7738
  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: 14660f677e16a5c36f3c43e9e64f5e021fda627b
      https://github.com/dovecot/core/commit/14660f677e16a5c36f3c43e9e64f5e021fda627b
  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: 58a102564ba58e2713e02ab86054978eb611cb81
      https://github.com/dovecot/core/commit/58a102564ba58e2713e02ab86054978eb611cb81
  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: dd19de9b6382c9a47b65df6b2396789df37a19fb
      https://github.com/dovecot/core/commit/dd19de9b6382c9a47b65df6b2396789df37a19fb
  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: e5ef6fa616e0b0ed1bf545b39f0d9e8dea48c970
      https://github.com/dovecot/core/commit/e5ef6fa616e0b0ed1bf545b39f0d9e8dea48c970
  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: 5cdaaf2ecfed02503572935266f55123923ba00a
      https://github.com/dovecot/core/commit/5cdaaf2ecfed02503572935266f55123923ba00a
  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: 193a587e51288e59d9ed80609e1b8854a24bb708
      https://github.com/dovecot/core/commit/193a587e51288e59d9ed80609e1b8854a24bb708
  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.


Compare: https://github.com/dovecot/core/compare/94fb15fffc81...193a587e5128


More information about the dovecot-cvs mailing list