Mercurial > hg > nginx
comparison src/stream/ngx_stream_upstream_hash_module.c @ 7513:d964b0aee8e7
Upstream hash: fall back to round-robin if hash key is empty.
author | Niklas Keller <me@kelunik.com> |
---|---|
date | Thu, 23 May 2019 16:49:22 +0300 |
parents | ed599ea6c1f1 |
children |
comparison
equal
deleted
inserted
replaced
7512:99ef05560b96 | 7513:d964b0aee8e7 |
---|---|
176 ngx_log_debug1(NGX_LOG_DEBUG_STREAM, pc->log, 0, | 176 ngx_log_debug1(NGX_LOG_DEBUG_STREAM, pc->log, 0, |
177 "get hash peer, try: %ui", pc->tries); | 177 "get hash peer, try: %ui", pc->tries); |
178 | 178 |
179 ngx_stream_upstream_rr_peers_rlock(hp->rrp.peers); | 179 ngx_stream_upstream_rr_peers_rlock(hp->rrp.peers); |
180 | 180 |
181 if (hp->tries > 20 || hp->rrp.peers->single) { | 181 if (hp->tries > 20 || hp->rrp.peers->single || hp->key.len == 0) { |
182 ngx_stream_upstream_rr_peers_unlock(hp->rrp.peers); | 182 ngx_stream_upstream_rr_peers_unlock(hp->rrp.peers); |
183 return hp->get_rr_peer(pc, &hp->rrp); | 183 return hp->get_rr_peer(pc, &hp->rrp); |
184 } | 184 } |
185 | 185 |
186 now = ngx_time(); | 186 now = ngx_time(); |
509 ngx_log_debug1(NGX_LOG_DEBUG_STREAM, pc->log, 0, | 509 ngx_log_debug1(NGX_LOG_DEBUG_STREAM, pc->log, 0, |
510 "get consistent hash peer, try: %ui", pc->tries); | 510 "get consistent hash peer, try: %ui", pc->tries); |
511 | 511 |
512 ngx_stream_upstream_rr_peers_wlock(hp->rrp.peers); | 512 ngx_stream_upstream_rr_peers_wlock(hp->rrp.peers); |
513 | 513 |
514 if (hp->tries > 20 || hp->rrp.peers->single) { | 514 if (hp->tries > 20 || hp->rrp.peers->single || hp->key.len == 0) { |
515 ngx_stream_upstream_rr_peers_unlock(hp->rrp.peers); | 515 ngx_stream_upstream_rr_peers_unlock(hp->rrp.peers); |
516 return hp->get_rr_peer(pc, &hp->rrp); | 516 return hp->get_rr_peer(pc, &hp->rrp); |
517 } | 517 } |
518 | 518 |
519 pc->connection = NULL; | 519 pc->connection = NULL; |