Hello! On Thu, May 23, 2019 at 04:49:32PM +0300, Roman Arutyunyan wrote:
[...] > # HG changeset patch > # User Niklas Keller <m...@kelunik.com> > # Date 1558614458 -10800 > # Thu May 23 15:27:38 2019 +0300 > # Node ID 34dff919b948dd9652b24459e6a40c303058df09 > # Parent 234373adb2ce6023e69e527cbf2b60adf70b1130 > Upstream hash: fall back to round-robin if hash key is empty. > > diff --git a/src/http/modules/ngx_http_upstream_hash_module.c > b/src/http/modules/ngx_http_upstream_hash_module.c > --- a/src/http/modules/ngx_http_upstream_hash_module.c > +++ b/src/http/modules/ngx_http_upstream_hash_module.c > @@ -178,7 +178,7 @@ ngx_http_upstream_get_hash_peer(ngx_peer > > ngx_http_upstream_rr_peers_rlock(hp->rrp.peers); > > - if (hp->tries > 20 || hp->rrp.peers->single) { > + if (hp->tries > 20 || hp->rrp.peers->single || hp->key.len == 0) { > ngx_http_upstream_rr_peers_unlock(hp->rrp.peers); > return hp->get_rr_peer(pc, &hp->rrp); > } > @@ -509,7 +509,7 @@ ngx_http_upstream_get_chash_peer(ngx_pee > > ngx_http_upstream_rr_peers_wlock(hp->rrp.peers); > > - if (hp->tries > 20 || hp->rrp.peers->single) { > + if (hp->tries > 20 || hp->rrp.peers->single || hp->key.len == 0) { > ngx_http_upstream_rr_peers_unlock(hp->rrp.peers); > return hp->get_rr_peer(pc, &hp->rrp); > } > diff --git a/src/stream/ngx_stream_upstream_hash_module.c > b/src/stream/ngx_stream_upstream_hash_module.c > --- a/src/stream/ngx_stream_upstream_hash_module.c > +++ b/src/stream/ngx_stream_upstream_hash_module.c > @@ -178,7 +178,7 @@ ngx_stream_upstream_get_hash_peer(ngx_pe > > ngx_stream_upstream_rr_peers_rlock(hp->rrp.peers); > > - if (hp->tries > 20 || hp->rrp.peers->single) { > + if (hp->tries > 20 || hp->rrp.peers->single || hp->key.len == 0) { > ngx_stream_upstream_rr_peers_unlock(hp->rrp.peers); > return hp->get_rr_peer(pc, &hp->rrp); > } > @@ -511,7 +511,7 @@ ngx_stream_upstream_get_chash_peer(ngx_p > > ngx_stream_upstream_rr_peers_wlock(hp->rrp.peers); > > - if (hp->tries > 20 || hp->rrp.peers->single) { > + if (hp->tries > 20 || hp->rrp.peers->single || hp->key.len == 0) { > ngx_stream_upstream_rr_peers_unlock(hp->rrp.peers); > return hp->get_rr_peer(pc, &hp->rrp); > } For the record: looks good to me, please commit. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel