1) Large cache key cause core dump as reported here: <a href="http://forum.nginx.org/read.php?2,182995,209970#msg-209970" target="_blank">http://forum.nginx.org/read.php?2,182995,209970#msg-209970</a><br>When the length of cache key is bigger than buffer_size, receiving of backend response will cause memory overflow and core dump<br>

<br>2) When servers in backup state are more than in not-backup state, the buffer rrp-&gt;tried points to may be not enough for backup group.<br>When all normal servers are fail, rrp-&gt;tried is reset to 0, according to the number of servers in backup group. <br>

See ngx_http_upstream_init_round_robin_peer, line 531 and line 552, <br><br>3) In ngx_http_upstream_get_peer, when all servers are marked as “down”, while we have backups alive, this function will never return, <br>because weight is set to zero for down servers, and current_weight has no chance to be bigger than 0.<br>

Although all servers marked as down is not a good idea, infinite loop should not happen <br><br><br>Thanks!