httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Neil A. Hillard" <hilla...@whl.co.uk>
Subject [users@httpd] Apache drops connection but ifdown/up resolves the issue!
Date Wed, 25 Jan 2006 09:53:18 GMT
Hi,

	I've got Apache 2.0.55 built from source and am seeing an odd problem 
related to multiple IP addresses on VLANs.

The server has a trunked connection back to our switch and has the IP 
addresses 172.24.12.9, 172.24.11.3 and 172.16.14.104.  These are 
configured as bond0, bond0:2 and bond0.2 respectively.  There are other 
aliases IP addresses on bond0 but they're probably irrelevant for this 
problem.

Apache is listening on all interfaces, port 80 and 443.

I have a client at 172.16.40.32 attempting to connect to port 80 on 
172.24.11.3.  The following occurs:

# telnet 172.24.11.3 80
Trying 172.24.11.3...
Connected to 172.24.11.3 (172.24.11.3).
Escape character is '^]'.
Connection closed by foreign host.


An strace against httpd shows:

[pid 31138] accept(3, {sa_family=AF_INET, sin_port=htons(44894), 
sin_addr=inet_addr("172.16.40.32")}, [16]) = 16
[pid 31138] semop(6914069, 0xb79f0c, 1) = 0
[pid 31138] futex(0x837c474, FUTEX_WAKE, 1 <unfinished ...>
[pid 31130] <... futex resumed> )       = 0
[pid 31138] <... futex resumed> )       = 1
[pid 31138] semop(6914069, 0xb79f12, 1) = 0
[pid 31138] poll( <unfinished ...>
[pid 31130] futex(0x837c43c, FUTEX_WAKE, 1) = 0
[pid 31130] getsockname(16, {sa_family=AF_INET, sin_port=htons(80), 
sin_addr=inet_addr("172.24.11.3")}, [16]) = 0
[pid 31130] fcntl64(16, F_GETFL)        = 0x2 (flags O_RDWR)
[pid 31130] fcntl64(16, F_SETFL, O_RDWR|O_NONBLOCK) = 0
[pid 31130] read(16, 0x83eccf8, 8000)   = -1 EAGAIN (Resource 
temporarily unavailable)
[pid 31130] poll([{fd=16, events=POLLIN, 
revents=POLLIN|POLLERR|POLLHUP}], 1, 300000) = 1
[pid 31130] read(16, 0x83eccf8, 8000)   = -1 ECONNRESET (Connection 
reset by peer)
[pid 31130] gettimeofday({1138182161, 971221}, NULL) = 0
[pid 31130] shutdown(16, 1 /* send */)  = -1 ENOTCONN (Transport 
endpoint is not connected)
[pid 31130] close(16)                   = 0


If I then perform 'ifconfig bond0.2 down', 'ifconfig bond0.2 up' and 
repeat the test everything works as expected!  It carries on working for 
a while and then gives up the ghost again!

Apache is receiving the connection and I can see from a packet capture 
that the three-way handshake is completing but for some reason it's 
dropping the connection - almost like tcpwrappers does!

Whilst Apache is refusing the connections, I can still ssh to the same 
IP address.

This one has me puzzled - if anyone can shed some light on it, it would 
be much appreciated!

Many thanks in advance,


				Neil.

-- 
Neil Hillard                    hillardn@whl.co.uk
Westland Helicopters Ltd.       http://www.whl.co.uk/

Disclaimer: This message does not necessarily reflect the
             views of Westland Helicopters Ltd.

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message