mirror of
https://github.com/nginx/nginx.git
synced 2025-06-08 02:02:38 +08:00
Upstream: reject upstreams without normal servers.
Such upstreams cause CPU hog later in the code as number of peers isn't expected to be 0. Currently this may happen either if there are only backup servers defined in an upstream block, or if server with ipv6 address used in an upstream block.
This commit is contained in:
parent
525e1f75e4
commit
a5d4f66ad6
@ -49,6 +49,13 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
|
|||||||
n += server[i].naddrs;
|
n += server[i].naddrs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (n == 0) {
|
||||||
|
ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
|
||||||
|
"no servers in upstream \"%V\" in %s:%ui",
|
||||||
|
&us->host, us->file_name, us->line);
|
||||||
|
return NGX_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
peers = ngx_pcalloc(cf->pool, sizeof(ngx_http_upstream_rr_peers_t)
|
peers = ngx_pcalloc(cf->pool, sizeof(ngx_http_upstream_rr_peers_t)
|
||||||
+ sizeof(ngx_http_upstream_rr_peer_t) * (n - 1));
|
+ sizeof(ngx_http_upstream_rr_peer_t) * (n - 1));
|
||||||
if (peers == NULL) {
|
if (peers == NULL) {
|
||||||
|
Loading…
Reference in New Issue
Block a user