Hello community,

here is the log from the commit of package nginx for openSUSE:Factory checked 
in at 2019-07-17 13:20:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nginx (Old)
 and      /work/SRC/openSUSE:Factory/.nginx.new.1887 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nginx"

Wed Jul 17 13:20:46 2019 rev:37 rq:715679 version:1.17.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/nginx/nginx.changes      2019-05-24 
11:33:35.233362168 +0200
+++ /work/SRC/openSUSE:Factory/.nginx.new.1887/nginx.changes    2019-07-17 
13:21:15.819606977 +0200
@@ -1,0 +2,15 @@
+Tue Jul  9 12:05:55 UTC 2019 - Marcus Rueckert <mrueck...@suse.de>
+
+- update to 1.17.1
+  - Feature: the "limit_req_dry_run" directive.
+  - Feature: when using the "hash" directive inside the "upstream"
+    block an empty hash key now triggers round-robin balancing.
+    Thanks to Niklas Keller.
+  - Bugfix: a segmentation fault might occur in a worker process if
+    caching was used along with the "image_filter" directive, and
+    errors with code 415 were redirected with the "error_page"
+    directive; the bug had appeared in 1.11.10.
+  - Bugfix: a segmentation fault might occur in a worker process if
+    embedded perl was used; the bug had appeared in 1.7.3.
+
+-------------------------------------------------------------------

Old:
----
  nginx-1.17.0.tar.gz
  nginx-1.17.0.tar.gz.asc

New:
----
  nginx-1.17.1.tar.gz
  nginx-1.17.1.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nginx.spec ++++++
--- /var/tmp/diff_new_pack.y0zJv3/_old  2019-07-17 13:21:16.651606504 +0200
+++ /var/tmp/diff_new_pack.y0zJv3/_new  2019-07-17 13:21:16.651606504 +0200
@@ -70,7 +70,7 @@
 %define ngx_doc_dir    %{_datadir}/doc/packages/%{name}
 #
 Name:           nginx
-Version:        1.17.0
+Version:        1.17.1
 Release:        0
 %define ngx_fancyindex_version 0.4.2
 %define ngx_fancyindex_module_path ngx-fancyindex-%{ngx_fancyindex_version}

++++++ nginx-1.17.0.tar.gz -> nginx-1.17.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.17.0/CHANGES new/nginx-1.17.1/CHANGES
--- old/nginx-1.17.0/CHANGES    2019-05-21 16:24:01.000000000 +0200
+++ new/nginx-1.17.1/CHANGES    2019-06-25 14:19:49.000000000 +0200
@@ -1,4 +1,21 @@
 
+Changes with nginx 1.17.1                                        25 Jun 2019
+
+    *) Feature: the "limit_req_dry_run" directive.
+
+    *) Feature: when using the "hash" directive inside the "upstream" block
+       an empty hash key now triggers round-robin balancing.
+       Thanks to Niklas Keller.
+
+    *) Bugfix: a segmentation fault might occur in a worker process if
+       caching was used along with the "image_filter" directive, and errors
+       with code 415 were redirected with the "error_page" directive; the
+       bug had appeared in 1.11.10.
+
+    *) Bugfix: a segmentation fault might occur in a worker process if
+       embedded perl was used; the bug had appeared in 1.7.3.
+
+
 Changes with nginx 1.17.0                                        21 May 2019
 
     *) Feature: variables support in the "limit_rate" and "limit_rate_after"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.17.0/CHANGES.ru new/nginx-1.17.1/CHANGES.ru
--- old/nginx-1.17.0/CHANGES.ru 2019-05-21 16:24:00.000000000 +0200
+++ new/nginx-1.17.1/CHANGES.ru 2019-06-25 14:19:47.000000000 +0200
@@ -1,4 +1,22 @@
 
+Изменения в nginx 1.17.1                                          25.06.2019
+
+    *) Добавление: директива limit_req_dry_run.
+
+    *) Добавление: при использовании директивы hash в блоке upstream пустой
+       ключ хэширования теперь приводит к переключению на round-robin
+       балансировку.
+       Спасибо Niklas Keller.
+
+    *) Исправление: в рабочем процессе мог произойти segmentation fault,
+       если использовалось кэширование и директива image_filter, а ошибки с
+       кодом 415 перенаправлялись с помощь директивы error_page; ошибка
+       появилась в 1.11.10.
+
+    *) Исправление: в рабочем процессе мог произойти segmentation fault,
+       если использовался встроенный перл; ошибка появилась в 1.7.3.
+
+
 Изменения в nginx 1.17.0                                          21.05.2019
 
     *) Добавление: директивы limit_rate и limit_rate_after поддерживают
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.17.0/src/core/nginx.h 
new/nginx-1.17.1/src/core/nginx.h
--- old/nginx-1.17.0/src/core/nginx.h   2019-05-21 16:23:57.000000000 +0200
+++ new/nginx-1.17.1/src/core/nginx.h   2019-06-25 14:19:45.000000000 +0200
@@ -9,8 +9,8 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define nginx_version      1017000
-#define NGINX_VERSION      "1.17.0"
+#define nginx_version      1017001
+#define NGINX_VERSION      "1.17.1"
 #define NGINX_VER          "nginx/" NGINX_VERSION
 
 #ifdef NGX_BUILD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nginx-1.17.0/src/http/modules/ngx_http_limit_req_module.c 
new/nginx-1.17.1/src/http/modules/ngx_http_limit_req_module.c
--- old/nginx-1.17.0/src/http/modules/ngx_http_limit_req_module.c       
2019-05-21 16:23:57.000000000 +0200
+++ new/nginx-1.17.1/src/http/modules/ngx_http_limit_req_module.c       
2019-06-25 14:19:45.000000000 +0200
@@ -53,6 +53,7 @@
     ngx_uint_t                   limit_log_level;
     ngx_uint_t                   delay_log_level;
     ngx_uint_t                   status_code;
+    ngx_flag_t                   dry_run;
 } ngx_http_limit_req_conf_t;
 
 
@@ -118,6 +119,13 @@
       offsetof(ngx_http_limit_req_conf_t, status_code),
       &ngx_http_limit_req_status_bounds },
 
+    { ngx_string("limit_req_dry_run"),
+      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
+      ngx_conf_set_flag_slot,
+      NGX_HTTP_LOC_CONF_OFFSET,
+      offsetof(ngx_http_limit_req_conf_t, dry_run),
+      NULL },
+
       ngx_null_command
 };
 
@@ -230,9 +238,10 @@
 
         if (rc == NGX_BUSY) {
             ngx_log_error(lrcf->limit_log_level, r->connection->log, 0,
-                          "limiting requests, excess: %ui.%03ui by zone 
\"%V\"",
-                          excess / 1000, excess % 1000,
-                          &limit->shm_zone->shm.name);
+                        "limiting requests%s, excess: %ui.%03ui by zone 
\"%V\"",
+                        lrcf->dry_run ? ", dry run" : "",
+                        excess / 1000, excess % 1000,
+                        &limit->shm_zone->shm.name);
         }
 
         while (n--) {
@@ -251,6 +260,10 @@
             ctx->node = NULL;
         }
 
+        if (lrcf->dry_run) {
+            return NGX_DECLINED;
+        }
+
         return lrcf->status_code;
     }
 
@@ -267,9 +280,14 @@
     }
 
     ngx_log_error(lrcf->delay_log_level, r->connection->log, 0,
-                  "delaying request, excess: %ui.%03ui, by zone \"%V\"",
+                  "delaying request%s, excess: %ui.%03ui, by zone \"%V\"",
+                  lrcf->dry_run ? ", dry run" : "",
                   excess / 1000, excess % 1000, &limit->shm_zone->shm.name);
 
+    if (lrcf->dry_run) {
+        return NGX_DECLINED;
+    }
+
     if (ngx_handle_read_event(r->connection->read, 0) != NGX_OK) {
         return NGX_HTTP_INTERNAL_SERVER_ERROR;
     }
@@ -711,6 +729,7 @@
 
     conf->limit_log_level = NGX_CONF_UNSET_UINT;
     conf->status_code = NGX_CONF_UNSET_UINT;
+    conf->dry_run = NGX_CONF_UNSET;
 
     return conf;
 }
@@ -735,6 +754,8 @@
     ngx_conf_merge_uint_value(conf->status_code, prev->status_code,
                               NGX_HTTP_SERVICE_UNAVAILABLE);
 
+    ngx_conf_merge_value(conf->dry_run, prev->dry_run, 0);
+
     return NGX_CONF_OK;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nginx-1.17.0/src/http/modules/ngx_http_upstream_hash_module.c 
new/nginx-1.17.1/src/http/modules/ngx_http_upstream_hash_module.c
--- old/nginx-1.17.0/src/http/modules/ngx_http_upstream_hash_module.c   
2019-05-21 16:23:57.000000000 +0200
+++ new/nginx-1.17.1/src/http/modules/ngx_http_upstream_hash_module.c   
2019-06-25 14:19:45.000000000 +0200
@@ -178,7 +178,7 @@
 
     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_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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.17.0/src/http/modules/perl/nginx.xs 
new/nginx-1.17.1/src/http/modules/perl/nginx.xs
--- old/nginx-1.17.0/src/http/modules/perl/nginx.xs     2019-05-21 
16:23:57.000000000 +0200
+++ new/nginx-1.17.1/src/http/modules/perl/nginx.xs     2019-06-25 
14:19:45.000000000 +0200
@@ -147,6 +147,8 @@
         }
     }
 
+    r->disable_not_modified = 1;
+
     (void) ngx_http_send_header(r);
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.17.0/src/http/ngx_http_upstream.c 
new/nginx-1.17.1/src/http/ngx_http_upstream.c
--- old/nginx-1.17.0/src/http/ngx_http_upstream.c       2019-05-21 
16:23:57.000000000 +0200
+++ new/nginx-1.17.1/src/http/ngx_http_upstream.c       2019-06-25 
14:19:45.000000000 +0200
@@ -597,10 +597,6 @@
                 u->cache_status = NGX_HTTP_CACHE_MISS;
                 u->request_sent = 1;
             }
-
-            if (ngx_http_upstream_cache_background_update(r, u) != NGX_OK) {
-                rc = NGX_ERROR;
-            }
         }
 
         if (rc != NGX_DECLINED) {
@@ -902,9 +898,14 @@
              || c->stale_updating) && !r->background
             && u->conf->cache_background_update)
         {
-            r->cache->background = 1;
-            u->cache_status = rc;
-            rc = NGX_OK;
+            if (ngx_http_upstream_cache_background_update(r, u) == NGX_OK) {
+                r->cache->background = 1;
+                u->cache_status = rc;
+                rc = NGX_OK;
+
+            } else {
+                rc = NGX_ERROR;
+            }
         }
 
         break;
@@ -1106,10 +1107,6 @@
 {
     ngx_http_request_t  *sr;
 
-    if (!r->cached || !r->cache->background) {
-        return NGX_OK;
-    }
-
     if (r == r->main) {
         r->preserve_body = 1;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nginx-1.17.0/src/stream/ngx_stream_upstream_hash_module.c 
new/nginx-1.17.1/src/stream/ngx_stream_upstream_hash_module.c
--- old/nginx-1.17.0/src/stream/ngx_stream_upstream_hash_module.c       
2019-05-21 16:23:57.000000000 +0200
+++ new/nginx-1.17.1/src/stream/ngx_stream_upstream_hash_module.c       
2019-06-25 14:19:45.000000000 +0200
@@ -178,7 +178,7 @@
 
     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_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);
     }



Reply via email to