[dovecot/core] 28a959: doveadm director ring remove: Wait ring sync befor...

GitHub noreply at github.com
Thu Oct 5 18:00:16 EEST 2017


  Branch: refs/heads/master-2.2
  Home:   https://github.com/dovecot/core
  Commit: 28a95958315a37194d8284831076580a19834590
      https://github.com/dovecot/core/commit/28a95958315a37194d8284831076580a19834590
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

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

  Log Message:
  -----------
  doveadm director ring remove: Wait ring sync before and after removal

This helps mainly with automated tests.


  Commit: 895f219ab61f38c97763243e818da07ac1238c9f
      https://github.com/dovecot/core/commit/895f219ab61f38c97763243e818da07ac1238c9f
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/director/director.c

  Log Message:
  -----------
  director: When logging "ring SYNC lost", include sync seq number in message

This can help with debugging.


  Commit: 12cedfd9d6c0da8bc22b1fc8a931974db475cffc
      https://github.com/dovecot/core/commit/12cedfd9d6c0da8bc22b1fc8a931974db475cffc
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/director/director.c

  Log Message:
  -----------
  director: Improve debugging: Log ring desync when there is no right connection


  Commit: aae6b3c54968a43af96d47db08d8f24c2bf50e3d
      https://github.com/dovecot/core/commit/aae6b3c54968a43af96d47db08d8f24c2bf50e3d
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 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

  Log Message:
  -----------
  director: Log info line whenever a director is added/removed from ring

This can help with debugging problems.


  Commit: d4e911dc96ecaa57c8ec8a8332ca3fa7d2a66c7f
      https://github.com/dovecot/core/commit/d4e911dc96ecaa57c8ec8a8332ca3fa7d2a66c7f
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/director/director.c

  Log Message:
  -----------
  director: Cleanup - move code to a new director_log_connect()

Also adds a missing ')' to the log line.


  Commit: ac84f5ecda5b3522af811b26584e72d2838d75e7
      https://github.com/dovecot/core/commit/ac84f5ecda5b3522af811b26584e72d2838d75e7
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

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

  Log Message:
  -----------
  director: Log info line for every incoming/outgoing connection

This can help with debugging problems.


  Commit: 9ccadd95f01c01577da098e61018420de6b58410
      https://github.com/dovecot/core/commit/9ccadd95f01c01577da098e61018420de6b58410
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

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

  Log Message:
  -----------
  director: Don't reset directors' last_network_failure while handshaking

The reset is done mainly to make it faster for a director that has been down
to connect back to the ring, without other directors still thinking that
it's down. But DIRECTOR that is sent during handshake says nothing about
whether the director is up at the moment or not.


  Commit: d97cdcd074c4ff9811d83b6b4cde4db8c4b0e99a
      https://github.com/dovecot/core/commit/d97cdcd074c4ff9811d83b6b4cde4db8c4b0e99a
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/director/director.c

  Log Message:
  -----------
  director: When director is removed, notify it before disconnecting

This way the removed director will know that it's been removed, and it
can also more quickly forward the removal to other directors.


  Commit: 6fe248ffc9367adb820857195970a8bb64658785
      https://github.com/dovecot/core/commit/6fe248ffc9367adb820857195970a8bb64658785
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

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

  Log Message:
  -----------
  director: After CONNECT was received, make sure we disconnect

The remote side won't be reading anything after the CONNECT, so we have to
disconnect anyway. If we decide that the CONNECT request is wrong, reconnect
after a short delay and hope that the remote agrees with us the next time.


  Commit: 69ccb2a4b6a500555425ef884d2fbc30a2aa56f6
      https://github.com/dovecot/core/commit/69ccb2a4b6a500555425ef884d2fbc30a2aa56f6
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

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

  Log Message:
  -----------
  director: Ignore CONNECT requests to hosts that have been removed already


  Commit: caa79afc75fcba16a2576cedc9762e2a0d88cced
      https://github.com/dovecot/core/commit/caa79afc75fcba16a2576cedc9762e2a0d88cced
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

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

  Log Message:
  -----------
  director: Fix ring sync wait after DIRECTOR-REMOVE

It was sending OK twice, and the first OK was too early.


  Commit: 1daf301b5e30e63220e82356203ad54c737b5d2b
      https://github.com/dovecot/core/commit/1daf301b5e30e63220e82356203ad54c737b5d2b
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

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

  Log Message:
  -----------
  director: Don't crash if DIRECTOR-REMOVE is received for itself

This triggers the director removal from the ring, which causes the
connection to be destroyed. But since we're still in the middle of handling
the connection it needs refcounting.


  Commit: 5786c80895ec1033997dd05e0afc7d9fb3c60cd0
      https://github.com/dovecot/core/commit/5786c80895ec1033997dd05e0afc7d9fb3c60cd0
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

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

  Log Message:
  -----------
  director: Don't crash on doveadm director ring remove for unknown director

Ring syncing isn't started, so it shouldn't try to wait for ring sync.

Fixes:
Panic: file doveadm-connection.c: line 859 (doveadm_connection_cmd_run): assertion failed: (conn->dir->right == NULL && conn->dir->left == NULL)


  Commit: 057a7099a89101e86f4d0368f705121fcb007847
      https://github.com/dovecot/core/commit/057a7099a89101e86f4d0368f705121fcb007847
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/director/director.c

  Log Message:
  -----------
  director: Allow doveadm director ring remove for the same director

Fixes:
Panic: file doveadm-connection.c: line 859 (doveadm_connection_cmd_run): assertion failed: (conn->dir->right == NULL && conn->dir->left == NULL)


  Commit: 0de04d76312875314c5c79c4dce2cf57fcfcd5d8
      https://github.com/dovecot/core/commit/0de04d76312875314c5c79c4dce2cf57fcfcd5d8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/director/director.c

  Log Message:
  -----------
  director: Fix potential panic when director is alone

If director is alone and it can't connect to other directors, it might crash
with:

Panic: file director.c: line 318 (director_set_ring_synced): assertion failed: (!dir->ring_synced)


  Commit: ecc1625d9cde8075cc0f2f394e5ade8338f91f66
      https://github.com/dovecot/core/commit/ecc1625d9cde8075cc0f2f394e5ade8338f91f66
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/director/director.c

  Log Message:
  -----------
  director: Rename director_delayed_dir_remove_timeout() to director_hosts_purge_removed()

This allows using it for other purposes without having a confusing name.


  Commit: 588d8bef18ab4a5e23a4df252aef948664a874c0
      https://github.com/dovecot/core/commit/588d8bef18ab4a5e23a4df252aef948664a874c0
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-10-05 (Thu, 05 Oct 2017)

  Changed paths:
    M src/director/director.c

  Log Message:
  -----------
  director: When ring is synced, purge any pending "removed" directors

This allows adding a director back to the ring without having to wait for 30
seconds.


Compare: https://github.com/dovecot/core/compare/a912765fdaaa...588d8bef18ab


More information about the dovecot-cvs mailing list