[dovecot/core] 41925f: lib-http: client: peer: Notify definitive connecti...

GitHub noreply at github.com
Fri Sep 7 09:31:15 EEST 2018


  Branch: refs/heads/master-2.3
  Home:   https://github.com/dovecot/core
  Commit: 41925f3e2ab2005454eb918c4cc5bb8ae277ed59
      https://github.com/dovecot/core/commit/41925f3e2ab2005454eb918c4cc5bb8ae277ed59
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Notify definitive connection failure only within a peer pool.

Other peer pools have different configuration, which may actually succeed and
will arrive at this point when their own connections fail anyway.


  Commit: a2f5b4314fef18ea148bb77b74161b165a99c9cf
      https://github.com/dovecot/core/commit/a2f5b4314fef18ea148bb77b74161b165a99c9cf
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Determine number of pending peers in http_client_peer_shared_connection_failure() itself.

Before, the number of pending peers was a parameter, but that was only for a
single peer pool. This is wrong, since the one peer can have many different
pools (depending on how many clients with incompatible configs share this
peer).


  Commit: e33d14e1fcc114a8aac905acee13431c1379e1fa
      https://github.com/dovecot/core/commit/e33d14e1fcc114a8aac905acee13431c1379e1fa
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-queue.c

  Log Message:
  -----------
  lib-http: client: queue: Fix the number of pending requests listed in http_client_queue_connection_failure() debug message.


  Commit: d73d9f72c2414ef92c20384a81de7c53af9544de
      https://github.com/dovecot/core/commit/d73d9f72c2414ef92c20384a81de7c53af9544de
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-queue.c

  Log Message:
  -----------
  lib-http: client: queue: Do not fail claimed requests unless the queue is being destroyed.

Before, connection failure would also abort requests already being sent on
another connection, which is premature at best.


  Commit: 085bde985e868d59b50cf1c0e7c2b7ce42c5f18f
      https://github.com/dovecot/core/commit/085bde985e868d59b50cf1c0e7c2b7ce42c5f18f
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Move http_client_peer_connection_failure().


  Commit: bb60be8b6942b4717b451f1d529edd3d2a43aad2
      https://github.com/dovecot/core/commit/bb60be8b6942b4717b451f1d529edd3d2a43aad2
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c
    M src/lib-http/http-client-private.h

  Log Message:
  -----------
  lib-http: client: peer: Always run http_client_queue_connection_failure() upon definitive connection failure.

The recorded peer->connecting flag was highly unreliable in a scenario involving
starting parallel connections. This way, the linked queues can update their
state accordingly. Also, this will not cause empty queues to initiate new
connection, because empty queues will do nothing after updating the connection
state.

This problem caused a client ioloop hang in high-load conditions.


  Commit: cc93191800051f132ccc7d0d435e561f083fd40c
      https://github.com/dovecot/core/commit/cc93191800051f132ccc7d0d435e561f083fd40c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Rename http_client_peer_connection_failed_any() to http_client_peer_connection_failed_pool().


  Commit: 24b39e6882005afb2c29ac4078a621d694e41b43
      https://github.com/dovecot/core/commit/24b39e6882005afb2c29ac4078a621d694e41b43
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Log debug message before calling peer pool in http_client_peer_connection_success().


  Commit: 71dbd9d36f42f7efc9db83098f58f228ed1d6ea8
      https://github.com/dovecot/core/commit/71dbd9d36f42f7efc9db83098f58f228ed1d6ea8
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Clarify debug message in http_client_peer_connection_failed_pool().


  Commit: 2ec17d0da0abb7aaf0ad4575be47510fa9d31b0d
      https://github.com/dovecot/core/commit/2ec17d0da0abb7aaf0ad4575be47510fa9d31b0d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Add debug message for http_client_peer_connection_failure().


  Commit: 2335b991407febd8a53ff61df0443079839188b9
      https://github.com/dovecot/core/commit/2335b991407febd8a53ff61df0443079839188b9
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c
    M src/lib-http/http-client-private.h

  Log Message:
  -----------
  lib-http: client: peer: Notify all peers in a peer pool about a successful connection.

This allows peers for which the last connection attempt failed (which was not
the last pending attempt in the pool) to try again. This solves a problem that
could potentially cause a hang with multiple parallel clients creating serveral
new connections at once.


  Commit: 1d3b102d7403f13e6efa05daee7b38c3309b409d
      https://github.com/dovecot/core/commit/1d3b102d7403f13e6efa05daee7b38c3309b409d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-connection.c

  Log Message:
  -----------
  lib-http: client: connection: Remove the connection from the peer pool pending list in a separate function.


  Commit: 0c5dea54e5bd7ed0ed3a303ef08cd62f2c7b7c32
      https://github.com/dovecot/core/commit/0c5dea54e5bd7ed0ed3a303ef08cd62f2c7b7c32
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: connection: Unlist the connection as pending immediately in http_client_connection_failure().


  Commit: 2e410c7cac56f11c556daf4906978a4859a594d8
      https://github.com/dovecot/core/commit/2e410c7cac56f11c556daf4906978a4859a594d8
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-client-peer.c
    M src/lib-http/http-client-private.h

  Log Message:
  -----------
  lib-http: client: peer: Maintain a list of connections pending on behalf of a peer.

Before, pending connections were only listed in the peer pool.


  Commit: fc6bf8dda9122b4a82a56ed7730b558ec19344e0
      https://github.com/dovecot/core/commit/fc6bf8dda9122b4a82a56ed7730b558ec19344e0
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Log the number of pending connections consistently in relevant debug messages.

Use the same style everywhere and log it where it makes sense.


Compare: https://github.com/dovecot/core/compare/51693ff9edcf...fc6bf8dda912
      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.


More information about the dovecot-cvs mailing list