[dovecot/core] aa881f: lib-http: client: Respect the connection idle time...

GitHub noreply at github.com
Thu Feb 2 17:30:11 UTC 2017


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: aa881f8f1465b2a8920c884e24b1b9a31a2a3666
      https://github.com/dovecot/core/commit/aa881f8f1465b2a8920c884e24b1b9a31a2a3666
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2017-02-02 (Thu, 02 Feb 2017)

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

  Log Message:
  -----------
  lib-http: client: Respect the connection idle timeout, even when all queues have unlinked from a peer.

Otherwise, the DNS TTL timeout dictates the connection idle timeout in some situations.


  Commit: b3df4be577af79d93f39e099e5e0b226ab7fd775
      https://github.com/dovecot/core/commit/b3df4be577af79d93f39e099e5e0b226ab7fd775
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2017-02-02 (Thu, 02 Feb 2017)

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

  Log Message:
  -----------
  lib-http: client: Fixed peer reconnection failure handling.

The addressed problem occurs in a very specific situation in which the original successful connection is dropped, yet a new connection fails.
It manifests as an assertion failure or panic:

Panic: file ioloop-epoll.c: line 189 (io_loop_handler_run_internal): assertion failed: (msecs >= 0)
Panic: BUG: No IOs or timeouts set. Not waiting for infinity.

The timing is very critical. However, this doesn't mean that the occurrence of this problem is very unlikely; it can happen frequently under high load.


Compare: https://github.com/dovecot/core/compare/18c01c257324...b3df4be577af


More information about the dovecot-cvs mailing list