ID:               26332
 User updated by:  foxkill at gmx dot de
 Reported By:      foxkill at gmx dot de
-Status:           Feedback
+Status:           Open
 Bug Type:         cURL related
 Operating System: Linux
 PHP Version:      5.0.0RC1-dev
 New Comment:

I did try the latest snapshots. But the problem is still existent.
Perhaps I should have mentioned that I use a debug version of php-cli
and the php curl library as shared module. In a realease build with
compiled in curl it seems to work as expected. Did you read my
additional comments that I provided with the example script on
http://www.secnow.de/websearch/websearch.txt? The problem seems to be
related to the fd_set variables that are set in curl_multi_perform.
When curl_multi_exec is called these fd_set variables are no longer
available.


Previous Comments:
------------------------------------------------------------------------

[2004-03-15 10:48:48] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip

Works fine for me with latest CVS snapshot.



------------------------------------------------------------------------

[2004-02-25 05:08:08] foxkill at gmx dot de

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 ===

------------------------------------------------------------------------

[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

Reply via email to