You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@apache.org on 2011/04/12 16:15:27 UTC
svn commit: r1091421 - /httpd/httpd/trunk/server/mpm/winnt/mpm_winnt.c
Author: trawick
Date: Tue Apr 12 14:15:27 2011
New Revision: 1091421
URL: http://svn.apache.org/viewvc?rev=1091421&view=rev
Log:
add some debug logging to show more information about passing of sockets
between parent and child
the extra info is helpful when using a generic listener on an IPv6-
enabled box when either IPV6_V6ONLY isn't defined for the APR build
or httpd is built with IPv4-mapped addresses enabled
in that case you'll see the parent writing one socket but the child
expecting too, before it bails out with
(OS 109)The pipe has been ended. : Child: Unable to read socket data
from parent
Modified:
httpd/httpd/trunk/server/mpm/winnt/mpm_winnt.c
Modified: httpd/httpd/trunk/server/mpm/winnt/mpm_winnt.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/winnt/mpm_winnt.c?rev=1091421&r1=1091420&r2=1091421&view=diff
==============================================================================
--- httpd/httpd/trunk/server/mpm/winnt/mpm_winnt.c (original)
+++ httpd/httpd/trunk/server/mpm/winnt/mpm_winnt.c Tue Apr 12 14:15:27 2011
@@ -432,6 +432,9 @@ static void get_listeners_from_parent(se
* pipe = GetStdHandle(STD_INPUT_HANDLE);
*/
for (lr = ap_listeners; lr; lr = lr->next, ++lcnt) {
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ap_server_conf,
+ "Child: Waiting for data for listening socket %pI",
+ lr->bind_addr);
if (!ReadFile(pipe, &WSAProtocolInfo, sizeof(WSAPROTOCOL_INFO),
&BytesRead, (LPOVERLAPPED) NULL)) {
ap_log_error(APLOG_MARK, APLOG_CRIT, apr_get_os_error(), ap_server_conf,
@@ -477,8 +480,8 @@ static int send_listeners_to_child(apr_p
lpWSAProtocolInfo = apr_pcalloc(p, sizeof(WSAPROTOCOL_INFO));
apr_os_sock_get(&nsd, lr->sd);
ap_log_error(APLOG_MARK, APLOG_INFO, APR_SUCCESS, ap_server_conf,
- "Parent: Duplicating socket %d and sending it to child process %lu",
- nsd, dwProcessId);
+ "Parent: Duplicating socket %d (%pI) and sending it to child process %lu",
+ nsd, lr->bind_addr, dwProcessId);
if (WSADuplicateSocket(nsd, dwProcessId,
lpWSAProtocolInfo) == SOCKET_ERROR) {
ap_log_error(APLOG_MARK, APLOG_CRIT, apr_get_netos_error(), ap_server_conf,