Link to home
Start Free TrialLog in
Avatar of Clouseau2
Clouseau2

asked on

Apache CGI script timing out

I'm an experienced software developer but this issue has me totally stumped.  I have two Linux servers, one sitting in Virginia, one in Bangalore, India.  Both are running "Red Hat Enterprise Linux ES release 4 (Nahant Update 4)" and apache 2.0.52.  The problem is, on the machine in Bangalore a perl CGI script always times out after 300 seconds.  Both systems have identical httpd.conf files (except ServerName) , both have the same tcp/ip settings (when I run /sbin/sysctl -a | grep net.inet.tcp I get the same results).  I tried running httpd on the Bangalore system with -f /etc/httpd/conf/httpd.conf to make sure it was picking up the "Timeout 5400" line in httpd.conf.  I even put in both Timeout and TimeOut in the file just in case case matters.

The only difference between the two systems that I can tell is that one system is running a 32 bit compiled httpd and one a 64 bit binary.  I've attached a simple CGI script.  On the Virginia system, about 5 minute go by and then it reports "Slept 301 seconds".  When I run the same CGI script on the Bangalore system, my browser waits forever.  If I change it to sleep 299 seconds, it works.  So somewhere something is timing out at 300 seconds, the question is what?  My browser just sits there forever waiting for a response, and there is nothing unusual logged in the error_log or access_log to help me debug where the response is being dropped.

#!/usr/bin/perl
 
my $sleep_sec = 5 * 60 + 1;
sleep ($sleep_sec);
 
print "Content-type: text/plain\n\n";
print "Slept $sleep_sec seconds\n";
exit 0;

Open in new window

Avatar of Tintin
Tintin

Are you going through a proxy server to get to either server?

Have you tried seeing what results you get with a different browser?

Have you tried running tcpdump on the server in India to see if it is network related?

Does it make any difference if you add a

$|=1;

to the script?
Avatar of Clouseau2

ASKER


There is no proxy server, this is through a corporate WAN, I'm on a VPN -- but the problem is also happing from people on the WAN.

I haven't tried a different browser but others are having the same problem and they use IE.

I've attached output from the tcpdump

Adding $| = 1 makes no difference.  The CGI script I wrote it just a simple test script that demonstrates the problem - ALL CGI scripts are having this problem on the system.

tcp.txt
I'd suggest doube-checking the proxy server, even on a WAN. It's not unreasonable to deploy one in a global wan to reduce traffic/latency on trans-ocean hops.

Secondly see if the Bangalore site (or anywhere in between) is running an IPS that's checking for http tunnels. A 5 minute response time is quite long for normal http traffic, and might be triggering an IPS signature that breaks the connection.
ASKER CERTIFIED SOLUTION
Avatar of Clouseau2
Clouseau2

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial