[dovecot/core] 650f55: lib-http: client: peer: Notify definitive connecti...

GitHub noreply at github.com
Thu Sep 6 20:30:12 EEST 2018


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: 650f55ebbe461d0a0d60d40205fb140bb94b4a57
      https://github.com/dovecot/core/commit/650f55ebbe461d0a0d60d40205fb140bb94b4a57
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: df17d5377252ea93934d22fb47310843ec3f5c9a
      https://github.com/dovecot/core/commit/df17d5377252ea93934d22fb47310843ec3f5c9a
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: dc4422583ecf6e94b93f96e33331760c515f3612
      https://github.com/dovecot/core/commit/dc4422583ecf6e94b93f96e33331760c515f3612
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: fb06286c6edffd7084ad948d05b1ee1523b58e3a
      https://github.com/dovecot/core/commit/fb06286c6edffd7084ad948d05b1ee1523b58e3a
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: 8c5d82c992afd029d7c9a8ce6f2a06abdf970a1c
      https://github.com/dovecot/core/commit/8c5d82c992afd029d7c9a8ce6f2a06abdf970a1c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: 1732a603c6a95a09a173dec05c5b1f1a4dad1ef7
      https://github.com/dovecot/core/commit/1732a603c6a95a09a173dec05c5b1f1a4dad1ef7
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: 4f45796c3f64e4568128590fd059e95b8b791385
      https://github.com/dovecot/core/commit/4f45796c3f64e4568128590fd059e95b8b791385
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: 4cbc452e470df0d9a16ce58885f780ffbfdcb9c7
      https://github.com/dovecot/core/commit/4cbc452e470df0d9a16ce58885f780ffbfdcb9c7
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: 42e4bcc17f15a767e71751c88ad318ae3476b1bb
      https://github.com/dovecot/core/commit/42e4bcc17f15a767e71751c88ad318ae3476b1bb
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: f783a433562967d8b079b2b446606cb5a417c64b
      https://github.com/dovecot/core/commit/f783a433562967d8b079b2b446606cb5a417c64b
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: 2d27dbc246444f442293e0d526e313b3c66cb401
      https://github.com/dovecot/core/commit/2d27dbc246444f442293e0d526e313b3c66cb401
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: 4f512a76bf83fda43eacd34a328685d3206d4c9c
      https://github.com/dovecot/core/commit/4f512a76bf83fda43eacd34a328685d3206d4c9c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: 29af08a693dabe12d9a995a7720a68a9521318ae
      https://github.com/dovecot/core/commit/29af08a693dabe12d9a995a7720a68a9521318ae
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: 07c3068063d5f6fcea57c3f8e44820ef051556ea
      https://github.com/dovecot/core/commit/07c3068063d5f6fcea57c3f8e44820ef051556ea
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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: 50f2938ddb902e4404222d360e2fb1d9d0affe2b
      https://github.com/dovecot/core/commit/50f2938ddb902e4404222d360e2fb1d9d0affe2b
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-06 (Thu, 06 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/ab80122c68bf...50f2938ddb90
      **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