[dovecot/core] 567d1c: lib-http: client: Explicitly destroy the response ...

GitHub noreply at github.com
Fri May 26 13:00:10 EEST 2017


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: 567d1c82e3e59a8e8acc2e1e01228585bab83bc6
      https://github.com/dovecot/core/commit/567d1c82e3e59a8e8acc2e1e01228585bab83bc6
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2017-05-26 (Fri, 26 May 2017)

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

  Log Message:
  -----------
  lib-http: client: Explicitly destroy the response payload timeout stream when the request is destroyed while receiving payload.

This way, the timeout is stopped.
This caused ioloop panics.


  Commit: 7a1bc4683f3667f440df415b3f839e25046cc720
      https://github.com/dovecot/core/commit/7a1bc4683f3667f440df415b3f839e25046cc720
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2017-05-26 (Fri, 26 May 2017)

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

  Log Message:
  -----------
  lib-http: client: When a request is destroyed prematurely during payload input, consider the payload stream destroyed and act accordingly.

The application may hold a reference to the payload stream still, and it may be difficult to prevent that.
This causes lib-http to keep waiting for the payload to be destroyed.
When nothing else is going on, the current ioloop may then become empty, which caused the familiar assert failure.


  Commit: 5791d02c3672f6a525f1fcf0f4f375b4be0ccf4b
      https://github.com/dovecot/core/commit/5791d02c3672f6a525f1fcf0f4f375b4be0ccf4b
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2017-05-26 (Fri, 26 May 2017)

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

  Log Message:
  -----------
  lib-http: client: Only drop queued requests when a DNS lookup fails; not also the ones that are already in progress.


Compare: https://github.com/dovecot/core/compare/6e43afe039cf...5791d02c3672


More information about the dovecot-cvs mailing list