Welcome! Log In Create A New Profile

Advanced

[nginx] Upstream: fixed unlocked access to peer->conns.

Ruslan Ermilov
April 19, 2015 03:42PM
details: http://hg.nginx.org/nginx/rev/4a640716f4e2
branches:
changeset: 6114:4a640716f4e2
user: Ruslan Ermilov <ru@nginx.com>
date: Sun Apr 19 22:41:09 2015 +0300
description:
Upstream: fixed unlocked access to peer->conns.

diffstat:

src/http/ngx_http_upstream_round_robin.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)

diffs (27 lines):

diff -r 36d99c042652 -r 4a640716f4e2 src/http/ngx_http_upstream_round_robin.c
--- a/src/http/ngx_http_upstream_round_robin.c Thu Mar 26 14:20:51 2015 +0300
+++ b/src/http/ngx_http_upstream_round_robin.c Sun Apr 19 22:41:09 2015 +0300
@@ -599,17 +599,20 @@ ngx_http_upstream_free_round_robin_peer(

peer = rrp->current;

+ ngx_http_upstream_rr_peers_rlock(rrp->peers);
+ ngx_http_upstream_rr_peer_lock(rrp->peers, peer);
+
if (rrp->peers->single) {

peer->conns--;

+ ngx_http_upstream_rr_peer_unlock(rrp->peers, peer);
+ ngx_http_upstream_rr_peers_unlock(rrp->peers);
+
pc->tries = 0;
return;
}

- ngx_http_upstream_rr_peers_rlock(rrp->peers);
- ngx_http_upstream_rr_peer_lock(rrp->peers, peer);
-
if (state & NGX_PEER_FAILED) {
now = ngx_time();


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

[nginx] Upstream: fixed unlocked access to peer->conns.

Ruslan Ermilov 562 April 19, 2015 03:42PM



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

Online Users

Guests: 163
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