https://bz.apache.org/bugzilla/show_bug.cgi?id=63273

--- Comment #5 from Dave Rager <[email protected]> ---
I believe the issue is related to how AWS ELBs scale and how Apache workers are
configured by default.

>From Apache docs:
"When connection reuse is enabled, each backend domain is resolved only once
per child process, and cached for all further connections until the child is
recycled."

When resolving an AWS ELB hostname "by default, Elastic Load Balancing will
return multiple IP addresses when clients perform a DNS resolution, with the
records being randomly ordered on each DNS resolution request."

Under load, AWS ELBs will scale to handle the traffic. (Not the same as scaling
application servers behind the ELB).

"The Elastic Load Balancing service will update the Domain Name System (DNS)
record of the load balancer when it scales so that the new resources have their
respective IP addresses registered in DNS."

I believe what is happening is, under load, previously unused workers are
started, resolve the ELB host and receive a "new" IP for the ELB. Once the load
subsides, the ELBs scale down and one or more IP addresses now cached by
workers are no longer valid. Because the worker has cached that IP, it tries to
use it the next time it receives a request which then fails with the described
error.

Regardless of the value of 'retry', that cached IP address will never be
refreshed and the worker will always fail until it is recycled.

Using the parameter 'disablereuse=on' (or 'enablereuse=off') will force the
worker to resolve the hostname to get a new IP.

Also note, it is better to leave 'retry' to its default value of 60 in the case
a worker resolves an IP address that hasn't yet been removed from the DNS
record when scaling down:

"The DNS record that is created includes a Time-to-Live (TTL) setting of 60
seconds, with the expectation that clients will re-lookup the DNS at least
every 60 seconds."

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to