php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #10673 CURL/PHP causes lengthy Apache Keepalive
Submitted: 2001-05-04 13:31 UTC Modified: 2001-07-30 17:09 UTC
From: dave at backbeatmedia dot com Assigned:
Status: Closed Package: cURL related
PHP Version: 4.0.6 OS: Linux
Private report: No CVE-ID: None
 [2001-05-04 13:31 UTC] dave at backbeatmedia dot com
Greetings. I have Apache/1.3.14 (Unix) running with 
PHP/4.0.4pl1 installed as a module and CURL 7.7.1 added to 
that. Our web sites need to fetch a request from a remote 
ad server in real-time as each page is generated. If $adr 
is the request, I used to use: 

$success = @readfile($adr); 

But then I found CURL and saw that is (a) was more robust 
and (b) seems to be more efficient than readfile. So I now 
use CURL in he following way: 

$aje_ch = @curl_init($adr); 
@curl_setopt ($aje_ch, CURLOPT_TIMEOUT, 1); 
@curl_setopt ($aje_ch, CURLOPT_MUTE, 1); 
@curl_exec ($aje_ch); 
@curl_close ($aje_ch); 

This works great, except that if I have "Keepalive on" in 
my Apache configuration file, the httpd server sits in 
keepalive state for FAR longer when using CURL than it does 
when using readfile. In the course of 2 or 3 hours, my 
server would normally be at about 150 httpd processes 
running at any given point in time. But when using CURL, it 
jumps to 650 httpd processes, with the lions share (99%) of 
those sitting in the keepalive state for very long. It 
seems like the CURL requests are causing Apache to set its 
Keepalive timeout to something much higher than it should 
be. Setting "keepalive off" in Apache's conf file works 
around this problem, but decreases server efficiency. I'd 
love to solve this problem. 

Please help! :-) 

For the record, this was posted to the cURL bug tracker 
over on SourceForge 
(http://sourceforge.net/tracker/?func=detail&atid=100976&ai
d=418860&group_id=976), and we went through quite a few 
gyrations with no success.  Specifically, we tried 
disabling KeepAlive on the REMOTE server to see if that had 
any affect, and it did not.  It seems not to matter what we 
request from, rather that any requests using 
PHP/cURL/Apache result in the LOCAL Apache bloating out of 
control with KeepAlive requests.  Reverting back to 
readfile() based requests solves this problem but, well, 
cURL is better.  ;-)

All help would be appreciated, and I am available and 
willing to test anything on our servers.

Thanks! 

-Dave	

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-06-03 17:49 UTC] sniper@php.net
First of all, try the latest release candidate for PHP 4.0.6:

http://www.php.net/~andi/php-4.0.6RC2.tar.gz

Note: You have to get the latest and greatest Curl
from CVS to get this work.

--Jani

 [2001-06-05 17:27 UTC] dave at backbeatmedia dot com
Ok, I updated to curl-7.8-pre4 and PHP-4.0.6RC2 and tested 
with the same results.  :-(

Anything else I should try?
-Dave
 [2001-06-22 12:46 UTC] sniper@php.net
Updated version. 

 [2001-06-26 16:35 UTC] dave at backbeatmedia dot com
Same problem still exists with CURL 7.8 and PHP 4.0.6.

Any more ideas?
 [2001-07-30 17:09 UTC] sterling@php.net
I'm gonna close this one.  its been awhile, and no one else
seems to have this problem and I certainly can't reproduce it.
 [2001-07-30 17:09 UTC] sterling@php.net
*arggghh*

close.

Mozilla sucks!
 
PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Sun Nov 29 11:01:23 2020 UTC