Welcome! Log In Create A New Profile

Advanced

[nginx] svn commit: r4623 - trunk/src/http

Anonymous User
May 14, 2012 09:56AM
Author: mdounin
Date: 2012-05-14 09:58:07 +0000 (Mon, 14 May 2012)
New Revision: 4623
URL: http://trac.nginx.org/nginx/changeset/4623/nginx

Log:
Upstream: fixed ip_hash rebalancing with the "down" flag.

Due to weight being set to 0 for down peers, order of peers after sorting
wasn't the same as without the "down" flag (with down peers at the end),
resulting in client rebalancing for clients on other servers. The only
rebalancing which should happen after adding "down" to a server is one
for clients on the server.

The problem was introduced in r1377 (which fixed endless loop by setting
weight to 0 for down servers). The loop is no longer possible with new
smooth algorithm, so preserving original weight is safe.


Modified:
trunk/src/http/ngx_http_upstream_round_robin.c

Modified: trunk/src/http/ngx_http_upstream_round_robin.c
===================================================================
--- trunk/src/http/ngx_http_upstream_round_robin.c 2012-05-14 09:57:20 UTC (rev 4622)
+++ trunk/src/http/ngx_http_upstream_round_robin.c 2012-05-14 09:58:07 UTC (rev 4623)
@@ -80,8 +80,8 @@
peers->peer[n].max_fails = server[i].max_fails;
peers->peer[n].fail_timeout = server[i].fail_timeout;
peers->peer[n].down = server[i].down;
- peers->peer[n].weight = server[i].down ? 0 : server[i].weight;
- peers->peer[n].effective_weight = peers->peer[n].weight;
+ peers->peer[n].weight = server[i].weight;
+ peers->peer[n].effective_weight = server[i].weight;
peers->peer[n].current_weight = 0;
n++;
}

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] svn commit: r4623 - trunk/src/http

Anonymous User 983 May 14, 2012 09:56AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 215
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready