Skip to content

Commit

Permalink
feature: more patch for balancer_pool_max_retry.
Browse files Browse the repository at this point in the history
  • Loading branch information
zhuizhuhaomeng committed Jul 9, 2024
1 parent 3636b19 commit cc86d58
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 0 deletions.
27 changes: 27 additions & 0 deletions patches/nginx-1.19.9-balancer_pool_max_retry.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
index d04d91e..397cb08 100644
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -4378,6 +4378,9 @@ ngx_http_upstream_next(ngx_http_request_t *r, ngx_http_upstream_t *u,
if (u->peer.cached && ft_type == NGX_HTTP_UPSTREAM_FT_ERROR) {
/* TODO: inform balancer instead */
u->peer.tries++;
+ if (u->peer.notify) {
+ u->peer.notify(&u->peer, u->peer.data, NGX_HTTP_UPSTREAM_NOTIFY_CACHED_CONNECTION_ERROR);
+ }
}

switch (ft_type) {
diff --git a/src/http/ngx_http_upstream.h b/src/http/ngx_http_upstream.h
index f6621af..2b5957e 100644
--- a/src/http/ngx_http_upstream.h
+++ b/src/http/ngx_http_upstream.h
@@ -55,6 +55,8 @@
#define NGX_HTTP_UPSTREAM_IGN_XA_CHARSET 0x00000100
#define NGX_HTTP_UPSTREAM_IGN_VARY 0x00000200

+#define NGX_HTTP_UPSTREAM_NOTIFY_CACHED_CONNECTION_ERROR 0x1
+

typedef struct {
ngx_uint_t status;
27 changes: 27 additions & 0 deletions patches/nginx-1.21.4-balancer_pool_max_retry.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
index d04d91e..397cb08 100644
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -4378,6 +4378,9 @@ ngx_http_upstream_next(ngx_http_request_t *r, ngx_http_upstream_t *u,
if (u->peer.cached && ft_type == NGX_HTTP_UPSTREAM_FT_ERROR) {
/* TODO: inform balancer instead */
u->peer.tries++;
+ if (u->peer.notify) {
+ u->peer.notify(&u->peer, u->peer.data, NGX_HTTP_UPSTREAM_NOTIFY_CACHED_CONNECTION_ERROR);
+ }
}

switch (ft_type) {
diff --git a/src/http/ngx_http_upstream.h b/src/http/ngx_http_upstream.h
index f6621af..2b5957e 100644
--- a/src/http/ngx_http_upstream.h
+++ b/src/http/ngx_http_upstream.h
@@ -55,6 +55,8 @@
#define NGX_HTTP_UPSTREAM_IGN_XA_CHARSET 0x00000100
#define NGX_HTTP_UPSTREAM_IGN_VARY 0x00000200

+#define NGX_HTTP_UPSTREAM_NOTIFY_CACHED_CONNECTION_ERROR 0x1
+

typedef struct {
ngx_uint_t status;
27 changes: 27 additions & 0 deletions patches/nginx-1.25.3-balancer_pool_max_retry.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
index d04d91e..397cb08 100644
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -4378,6 +4378,9 @@ ngx_http_upstream_next(ngx_http_request_t *r, ngx_http_upstream_t *u,
if (u->peer.cached && ft_type == NGX_HTTP_UPSTREAM_FT_ERROR) {
/* TODO: inform balancer instead */
u->peer.tries++;
+ if (u->peer.notify) {
+ u->peer.notify(&u->peer, u->peer.data, NGX_HTTP_UPSTREAM_NOTIFY_CACHED_CONNECTION_ERROR);
+ }
}

switch (ft_type) {
diff --git a/src/http/ngx_http_upstream.h b/src/http/ngx_http_upstream.h
index f6621af..2b5957e 100644
--- a/src/http/ngx_http_upstream.h
+++ b/src/http/ngx_http_upstream.h
@@ -55,6 +55,8 @@
#define NGX_HTTP_UPSTREAM_IGN_XA_CHARSET 0x00000100
#define NGX_HTTP_UPSTREAM_IGN_VARY 0x00000200

+#define NGX_HTTP_UPSTREAM_NOTIFY_CACHED_CONNECTION_ERROR 0x1
+

typedef struct {
ngx_uint_t status;

0 comments on commit cc86d58

Please sign in to comment.