#26332 [NoF->Opn]: Using curl_multi_exec with curl_multi_fdset doesnt work
| From: | foxkill at gmx dot de | Date: | Wed, 25 Feb 2004 10:08:09 +0000 |
| Subject: | #26332 [NoF->Opn]: Using curl_multi_exec with curl_multi_fdset doesnt work | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-55518@lists.php.net to get a copy of this message | ||
ID: 26332
User updated by: foxkill at gmx dot de
Reported By: foxkill at gmx dot de
-Status: No Feedback
+Status: Open
Bug Type: cURL related
Operating System: Linux
-PHP Version: 5CVS-2003-11-20 (dev)
+PHP Version: 5.0.0RC1-dev
New Comment:
You'll find the script to reproduce the error under:
http://www.secnow.de/websearch/websearch.txt
The script runs either in an endless loop or if it terminates it
prints:
Last leak repeated 2 times
/opt/local/src/lamp/php5-src/ext/curl/multi.c(62) : Freeing 0x40291A34
(8 bytes), script=websearch.php
=== Total 4 memory leaks detected ===
Previous Comments:
------------------------------------------------------------------------
[2004-02-24 17:13:24] sniper@php.net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.
------------------------------------------------------------------------
[2004-02-20 04:52:21] sniper@php.net
Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves.
A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external
resources such as databases, etc.
If possible, make the script source available online and provide
an URL to it here. Try avoid embedding huge scripts into the report.
------------------------------------------------------------------------
[2003-11-20 09:48:05] foxkill at gmx dot de
Description:
------------
I try to use curl_multi_fdset() together with curl_multi_exec() in
php5. But this doesn't work.
I modelled my php code after the sample (multi-app.c) which is provided
by the curl-src package.
Reproduce code:
---------------
this is the code I use for php5 (three single curl handles were
added):
while (CURLM_CALL_MULTI_PERFORM == curl_multi_exec($m, $still_running))
;
while ($still_running) {
$fd = curl_multi_select($m, 1);
switch($fd) {
case -1:
break;
case 0:
default:
while (CURLM_CALL_MULTI_PERFORM == curl_multi_exec($m,
$still_running))
;
}
}
Expected result:
----------------
The code should behave like the multi-app.c sample. See
[curl-src]/docs/examples/multi-app.c.
Actual result:
--------------
The code runs in an endless loop. Because curl_multi_exec() (alias
curl_multi_perform()) needs to reference the variables readfds,
writefds which were set by a previous call to curl_multi_fdset(). But
these fdsets have gone out of scope. The C Code works because the
fdsets are still present on the stack. See man 3 curl_multi_fdset for
further details. curl --version gives:
curl 7.10.8 (i686-pc-linux-gnu) libcurl/7.10.8 OpenSSL/0.9.7c
zlib/1.1.4
Protocols: ftp gopher ldap http file https ftps
Features: SSL libz NTLM
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26332&edit=1