[dovecot/core] 19f862: lib-http: test-http-payload: Improved logging of n...

GitHub noreply at github.com
Wed Sep 14 08:30:11 UTC 2016


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: 19f8621e1473269d6820988d84f815774c2c1053
      https://github.com/dovecot/core/commit/19f8621e1473269d6820988d84f815774c2c1053
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-09-13 (Tue, 13 Sep 2016)

  Changed paths:
    M src/lib-http/test-http-payload.c

  Log Message:
  -----------
  lib-http: test-http-payload: Improved logging of nested ioloop tests.


  Commit: 0873f750d44a45e027c5f770f1619977ad676f18
      https://github.com/dovecot/core/commit/0873f750d44a45e027c5f770f1619977ad676f18
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-09-13 (Tue, 13 Sep 2016)

  Changed paths:
    M src/lib-http/test-http-payload.c

  Log Message:
  -----------
  lib-http: test-http-payload: Fixed problem in nested ioloop test.

The running ioloop was not always stopped properly at the end of the test.
This caused an assert failure in the running ioloop.


  Commit: 1c9f4c14e9c17abcc2813ae977274e40b6579973
      https://github.com/dovecot/core/commit/1c9f4c14e9c17abcc2813ae977274e40b6579973
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-09-13 (Tue, 13 Sep 2016)

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

  Log Message:
  -----------
  lib-http: client: Fixed hang occurring when nested ioloops are used in response callbacks.

To prevent missing disconnect events, i_stream_read() is called once a change in ioloop is detected.
However, if something was actually read into the stream, the input handler was never called.
So, a response could linger in the stream buffer, without being handled, thereby causing the connection to hang indefinitely.
An additional input event could end the hang, but sometimes this doesn't happen before the request times out.

This problem was seen in test-http-payload once in about 10 invocations.
Obox uses nested ioloops, to this applies there.


Compare: https://github.com/dovecot/core/compare/5bfda550bd63...1c9f4c14e9c1


More information about the dovecot-cvs mailing list