[dovecot/core] a2ac8c: lib-http: client: Fix handling of servers with sev...
GitHub
noreply at github.com
Mon Dec 10 13:30:06 EET 2018
Branch: refs/heads/master
Home: https://github.com/dovecot/core
Commit: a2ac8c0b4a3e39b638c979e4676138a27fb4ebfd
https://github.com/dovecot/core/commit/a2ac8c0b4a3e39b638c979e4676138a27fb4ebfd
Author: Stephan Bosch <stephan.bosch at dovecot.fi>
Date: 2018-12-06 (Thu, 06 Dec 2018)
Changed paths:
M src/lib-http/http-client-queue.c
M src/lib-http/test-http-client-errors.c
Log Message:
-----------
lib-http: client: Fix handling of servers with several alternative IP addresses.
This also addresses an assert failure occurring with parallel clients:
Panic: file http-client-queue.c: line 518 (http_client_queue_connection_failure): assertion failed: (queue->cur_peer == peer)
Commit: 90f5df3993ded3d4a47bcb9587e5d003fbace7b3
https://github.com/dovecot/core/commit/90f5df3993ded3d4a47bcb9587e5d003fbace7b3
Author: Stephan Bosch <stephan.bosch at dovecot.fi>
Date: 2018-12-07 (Fri, 07 Dec 2018)
Changed paths:
M src/lib-http/http-client-peer.c
Log Message:
-----------
lib-http: client: Fix panic occurring at connection failure.
In http_client_peer_connection_failed_pool(), all linked queues are notified
about the connection failure through http_client_queue_connection_failure().
That function can internally link and unlink peers to the queue, including the
calling one. This means that the peer->queues array can be modified while it is
iterated in the array_foreach() loop. The problem is fixed by making a local
copy of the peer->queues array.
Compare: https://github.com/dovecot/core/compare/16db408725f5...90f5df3993de
**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