[packages/apache] - rel 2; better way of dealing with children at graceful reload
arekm
arekm at pld-linux.org
Fri Nov 15 19:30:57 CET 2013
commit 209f69342377e36589d9eed371da3235adb525b5
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Fri Nov 15 19:30:52 2013 +0100
- rel 2; better way of dealing with children at graceful reload
apache.spec | 2 +-
httpd-dummy-connection-result.patch | 36 ++++++++++++++++--------------------
2 files changed, 17 insertions(+), 21 deletions(-)
---
diff --git a/apache.spec b/apache.spec
index ae91ffe..c8bc419 100644
--- a/apache.spec
+++ b/apache.spec
@@ -35,7 +35,7 @@ Summary(ru.UTF-8): Самый популярный веб-сервер
Summary(tr.UTF-8): Lider WWW tarayıcı
Name: apache
Version: 2.4.6
-Release: 1
+Release: 2
License: Apache v2.0
Group: Networking/Daemons/HTTP
Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2
diff --git a/httpd-dummy-connection-result.patch b/httpd-dummy-connection-result.patch
index b2c70cc..81f0f08 100644
--- a/httpd-dummy-connection-result.patch
+++ b/httpd-dummy-connection-result.patch
@@ -1,21 +1,17 @@
---- httpd-2.4.4.org/server/mpm_unix.c 2012-07-03 21:38:58.000000000 +0200
-+++ httpd-2.4.4/server/mpm_unix.c 2013-04-15 14:27:54.197655418 +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 && lp->protocol && strcasecmp(lp->protocol, "http") == 0) {
-+ 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);
+diff --git a/server/mpm_unix.c b/server/mpm_unix.c
+index a70c271..ca880e5 100644
+--- a/server/mpm_unix.c
++++ b/server/mpm_unix.c
+@@ -742,7 +742,12 @@ void ap_mpm_pod_killpg(ap_pod_t *pod, int num)
+ * readers stranded (a number of them could be tied up for
+ * a while serving time-consuming requests)
+ */
++ /* Recall: we only worry about IDLE child processes here */
+ for (i = 0; i < num && rv == APR_SUCCESS; i++) {
++ if (ap_scoreboard_image->servers[i][0].status != SERVER_READY ||
++ ap_scoreboard_image->servers[i][0].pid == 0) {
++ continue;
+ }
-+ }
- apr_socket_close(sock);
- apr_pool_destroy(p);
-
+ rv = dummy_connection(pod);
+ }
+ }
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/apache.git/commitdiff/209f69342377e36589d9eed371da3235adb525b5
More information about the pld-cvs-commit
mailing list