Merge branch 'nginx' (nginx-1.13.12).

Change-Id: I77691cd0f5887df6a008ffd80b741007edc42c84
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
diff --git a/.hgtags b/.hgtags
index 57ed568..225c5e3 100644
--- a/.hgtags
+++ b/.hgtags
@@ -424,3 +424,4 @@
 fb1212c7eca4c5328fe17d6cd95b010c67336aac release-1.13.9
 31c929e16910c38492581ef474e72fa67c28f124 release-1.13.10
 64179f242cb55fc206bca59de9bfdc4cf5ebcec7 release-1.13.11
+051e5fa03b92b8a564f6b12debd483d267391e82 release-1.13.12
diff --git a/BUILD b/BUILD
index 001217b..dc73842 100644
--- a/BUILD
+++ b/BUILD
@@ -1502,5 +1502,5 @@
     preinst = "@nginx_pkgoss//:debian_preinst",
     prerm = "@nginx_pkgoss//:debian_prerm",
     section = "httpd",
-    version = "1.13.11",
+    version = "1.13.12",
 )
diff --git a/build.bzl b/build.bzl
index a85e64a..e8109de 100644
--- a/build.bzl
+++ b/build.bzl
@@ -663,7 +663,7 @@
         name = "nginx_pkgoss",
         build_file_content = _PKGOSS_BUILD_FILE.format(nginx = nginx) +
                              _PKGOSS_BUILD_FILE_TAIL,
-        commit = "843a9aa20070e4cf5a2f11f415aacc29e62c7bb6",  # nginx-1.13.11
+        commit = "8157e28e490a561530abb455d0df7b48a983b0f4",  # nginx-1.13.12
         remote = "https://nginx.googlesource.com/nginx-pkgoss",
     )
 
diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml
index 66eb0f7..da73db5 100644
--- a/docs/xml/nginx/changes.xml
+++ b/docs/xml/nginx/changes.xml
@@ -5,6 +5,22 @@
 <change_log title="nginx">
 
 
+<changes ver="1.13.12" date="2018-04-10">
+
+<change type="bugfix">
+<para lang="ru">
+при возврате большого ответа
+соединения с gRPC-бэкендами могли неожиданно закрываться.
+</para>
+<para lang="en">
+connections with gRPC backends might be closed unexpectedly
+when returning a large response.
+</para>
+</change>
+
+</changes>
+
+
 <changes ver="1.13.11" date="2018-04-03">
 
 <change type="feature">
diff --git a/src/core/nginx.h b/src/core/nginx.h
index 0dc5c03..6166000 100644
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -13,8 +13,8 @@
 #define NGINX_NAME         "nginx"
 #endif
 
-#define nginx_version      1013011
-#define NGINX_VERSION      "1.13.11"
+#define nginx_version      1013012
+#define NGINX_VERSION      "1.13.12"
 #define NGINX_VER          NGINX_NAME "/" NGINX_VERSION
 
 #ifdef NGX_BUILD
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
index fa8053f..87a9b87 100644
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -2017,8 +2017,6 @@
 
     /* rc == NGX_OK */
 
-    u->request_body_sent = 1;
-
     if (c->write->timer_set) {
         ngx_del_timer(c->write);
     }
@@ -2045,11 +2043,19 @@
         return;
     }
 
-    ngx_add_timer(c->read, u->conf->read_timeout);
+    if (!u->request_body_sent) {
+        u->request_body_sent = 1;
 
-    if (c->read->ready) {
-        ngx_http_upstream_process_header(r, u);
-        return;
+        if (u->header_sent) {
+            return;
+        }
+
+        ngx_add_timer(c->read, u->conf->read_timeout);
+
+        if (c->read->ready) {
+            ngx_http_upstream_process_header(r, u);
+            return;
+        }
     }
 }