mod_proxy_core seams to be failing handling the proxy_backlog when disabling one backend (on failure cases). Details:
proxy-core.balancer = "sqf"
proxy-core.protocol = "http"
proxy-core.check-local = "disable"
proxy-core.backends = ( "10.10.0.10:80", "10.10.0.11:80" )
- 1 ligthy in front of 2 apache's
- backend 1 (10.10.0.10) is intentionally DOWN (apache not listening)
- backend 2 UP
trace( attached )
In short, the server accept() the connetion then:
- selected backend 1
- address 1 of backend 1 is marked as disabled (conn refused)
- restart request ( via proxy_remove_backend_connection() )
- backend 1 is marked as disbled
> put the conn into the backlog connection taken by mod_proxy_wakeup_connections() (via trigger)
- never got data (or tried to connect to next backend)
Obviously next request works fine (the backend 1 is totally disabled), but the first request that falls into a bad address (the only one) of a backend is dropped due to timeout (write).
Also available in: Atom