[packages/apache/APACHE_2_2] - rel 7; prevent apache from hanging too long in graceful restart

arekm arekm at pld-linux.org
Fri Apr 12 17:54:33 CEST 2013


commit 0de3cf6b396727d868eec7b2aefa117efbc85863
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Fri Apr 12 17:51:27 2013 +0200

    - rel 7; prevent apache from hanging too long in graceful restart

 apache.spec                         |  4 +++-
 httpd-dummy-connection-result.patch | 23 +++++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)
---
diff --git a/apache.spec b/apache.spec
index c59e70a..913725a 100644
--- a/apache.spec
+++ b/apache.spec
@@ -44,7 +44,7 @@ Summary(ru.UTF-8):	Самый популярный веб-сервер
 Summary(tr.UTF-8):	Lider WWW tarayıcı
 Name:		apache
 Version:	2.2.24
-Release:	6
+Release:	7
 License:	Apache v2.0
 Group:		Networking/Daemons/HTTP
 Source0:	http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz
@@ -109,6 +109,7 @@ Patch26:	apache-mod_vhost_alias_docroot.patch
 Patch28:	apache-mpm-itk.patch
 Patch29:	libtool-tag.patch
 Patch30:	apache-bug-39653.patch
+Patch31:	httpd-dummy-connection-result.patch
 URL:		http://httpd.apache.org/
 BuildRequires:	apr-devel >= %{apr_ver}
 BuildRequires:	apr-util-devel >= 1:1.3.10-2
@@ -1805,6 +1806,7 @@ Dwa programy testowe/przykładowe cgi: test-cgi and print-env.
 %{?with_itk:%patch28 -p1}
 %patch29 -p1
 %patch30 -p1
+%patch31 -p1
 
 # using system apr, apr-util and pcre
 %{__rm} -r srclib/{apr,apr-util,pcre}
diff --git a/httpd-dummy-connection-result.patch b/httpd-dummy-connection-result.patch
new file mode 100644
index 0000000..a95a559
--- /dev/null
+++ b/httpd-dummy-connection-result.patch
@@ -0,0 +1,23 @@
+; http://www.mail-archive.com/dev%40httpd.apache.org/msg56690.html
+diff -ur a/server/mpm_common.c b/server/mpm_common.c
+--- a/server/mpm_common.c	2012-07-03 21:38:58.000000000 +0200
++++ b/server/mpm.common.c	2013-04-12 09:14:58.282929959 +0200
+@@ -604,7 +604,17 @@
+         len = strlen(data);
+     }
+ 
+-    apr_socket_send(sock, data, &len);
++    rv = apr_socket_send(sock, data, &len);
++    if (rv == APR_SUCCESS) {
++        char *buffer[10]; // dummy buffer to see if child is alive
++
++        len = sizeof(buffer);
++        rv = apr_socket_recv(sock, buffer, &len);
++        if (rv != APR_SUCCESS) {
++            ap_log_error(APLOG_MARK, APLOG_DEBUG, rv, ap_server_conf,
++                         "receiving response to dummy data to listener on %pI", lp->bind_addr);
++        }
++    }
+     apr_socket_close(sock);
+     apr_pool_destroy(p);
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/apache.git/commitdiff/0de3cf6b396727d868eec7b2aefa117efbc85863



More information about the pld-cvs-commit mailing list