ID:               12018
 Comment by:       babe-black1840 at hotmail dot com
 Reported By:      colin at easydns dot com
 Status:           Closed
 Bug Type:         cURL related
 Operating System: Debian (2.4.5)
 PHP Version:      4.0.6
 Assigned To:      stas
 New Comment:

<a href=http://3off-teensfucking-s.da.ru>black babe</a>


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

[2001-07-18 06:46:40] [EMAIL PROTECTED]

Fix committed to the CVS

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

[2001-07-17 07:13:24] [EMAIL PROTECTED]

I think I know what's the problem.

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

[2001-07-15 19:17:50] colin at easydns dot com

After a few patches from Sterling (thanks), I no longer see the memory
leak messages in the apache error log, and all the curl_exec() calls
seem to work okay.

But:

The setting of CURLOPT_HEADER is treated oddly.  Specifically, when you
ask for no HTTP header, it returns one.  When you do ask for one, it
returns one, with each line duplicated.

To see what I mean go here:

http://devel.easydns.com/~cmv/curltest/phpnet.php?header=0
http://devel.easydns.com/~cmv/curltest/phpnet.php?header=1

The value of $header is passed to curl_setopt($ch, CURLOPT_HEADER,
$header).  You can see the duplicatation.

Sterling has emailed me that he won't be able to look at this for a
week or more ... so I'm hoping one of the other developers who is
familiar with this extension can take a quick boo and see if it's an
easy fix.  My C is limited, but I'm wondering if an extra condition is
needed to the if statement on line 378 of curl.c ... something like:

    int get_header;
    curl_easy_getinfo(ch->cp, option, &get_header);
    if (get_header && 
      ch->handlers->write->method == PHP_CURL_RETURN) {
        ...


- Colin

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

[2001-07-10 11:49:33] [EMAIL PROTECTED]

Okay,

I recompile PHP with --enable-debug, so I could get a backtrace.

Now the problem goes away. :/

This is good for me, but must indicate something weird in the cURL
implementation, no?

- Colin

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

[2001-07-10 11:45:56] colin at easydns dot com

Every script I have that uses cURL never makes it past the curl_exec()
line.  Apache just seems to die at that point.  Apache error log
shows:

[Tue Jul 10 11:43:40 2001] [notice] child pid 27769 exit signal
Segmentation fault (11)
[Tue Jul 10 11:43:40 2001] [notice] child pid 27768 exit signal
Segmentation fault (11)

This is with PHP-4.0.6 Release, and cURL 7.8 final, on Debian
(2.4.5-pre3).  cURL is configured:

    configure --with-ssl

PHP is:

    ./configure \
    --with-mysql=/usr/local \
    --with-apxs=/usr/local/apache/bin/apxs \
    --enable-track-vars \
    --disable-magic-quotes \
    --disable-debug \
    --enable-ftp \
    --with-gettext \
    --with-xml \
    --with-dom \
    --enable-wddx \
    --with-curl \
    --with-pgsql \
    --with-zlib \
    --enable-versioning \
    --enable-sockets \
    --with-openssl \
    --with-snmp \
    --with-mcrypt

I was able to determine the following:

I have one script that cURL-posts to another URL on the same server,
and that script then cURL-posts to a URL outside.  In this case, the
first script dies.

I have another script that directly cURL-posts to the outside URL. 
This script works fine.

So it only seems to die if there are 2 cURL processes running on the
same server simultaneously (?).  This would explain the 2 segfaults in
the Apache log.

Let me know what other info I can give to help track down the problem.

- Colin

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


-- 
Edit this bug report at http://bugs.php.net/?id=12018&edit=1

Reply via email to