ID:               32979
 User updated by:  mjpph at stardust dot fi
 Reported By:      mjpph at stardust dot fi
 Status:           Open
 Bug Type:         Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:      5CVS-2005-05-08 (dev)
 Assigned To:      wez
 New Comment:

A problem. I'm running x86_64 FC3 and PHP and valgrind seems to be able
to do 32bit executables only.


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

[2005-05-28 11:06:46] mjpph at stardust dot fi

I guess you need valgrind --tool=callgrind. Also on another matter, I'm
unable to compile the newest CVS on FC3. I get this error even without
any configure options : libtool: link: `ext/libxml/libxml.lo' is not a
valid libtool object.

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

[2005-05-28 11:03:00] mjpph at stardust dot fi

Sure thing, just tell me what to do. I've never even heard of valgrind
before, but it seems FC3 comes with one.

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

[2005-05-28 04:39:07] [EMAIL PROTECTED]

That's the missing piece of the puzzle.
openssl replaces the default tcp transport, but passes through to the
default when you don't request ssl.
So, the behaviour should be identical.

Can you run the openssl enabled version under valgrind for me, to see
if something is misbehaving?
It'll give me a headstart when I sit down to solve the problem in the
morning.

Thanks.

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

[2005-05-27 22:05:33] mjpph at stardust dot fi

It's too bad that the openssl screws up the stream_select or
stream_socket_client in some weird way as I intended to use
stream_socket_enable_crypto() with the stream_socket_client() and it's
dependant of openssl.

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

[2005-05-27 21:52:35] mjpph at stardust dot fi

The strangest thing.. I had time to do some test compiles with the
200505260030 snapshot and I got some working. I took my usual
parameters off from configure one by one, after I removed
--with-openssl the script started suddenly working. Then I did test
compile with ./configure --with-openssl and without any parameters. The
one --with-openssl failed the script and the one without it worked just
fine. It seems that the openssl support does some havoc which causes
the failures. I did proper make clean / make distclean between the
compiles and doublechecked the results. Linux is a Fedora Core 3,
standard install with development support enabled.

The test script is as follows, the host machine has sendmail running as
a test service.

<?
$c = stream_socket_client("tcp://127.0.0.1:25");
while (1)
{
  $streams = array($c);
  if (stream_select($streams, $write=NULL, $except=NULL, 5, 0))
die("Select OK\n");
}
?>

Strace from the working PHP (without any configure parameters):

read(3, "<?\n$c = stream_socket_client(\"tc"..., 8192) = 221
read(3, "", 4096)                       = 0
read(3, "", 8192)                       = 0
close(3)                                = 0
munmap(0x2a97b2c000, 4096)              = 0
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
close(3)                                = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
fcntl(3, F_GETFL)                       = 0x2 (flags
O_RDWR|O_LARGEFILE)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
connect(3, {sa_family=AF_INET, sin_port=htons(25),
sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now
in progress)
poll([{fd=3, events=POLLIN|POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}],
1, 60000) = 1
getsockopt(3, SOL_SOCKET, SO_ERROR, "\0\0\0\0", [12884901892]) = 0
fcntl(3, F_SETFL, O_RDWR)               = 0
select(4, [3], [], [], {5, 0})          = 1 (in [3], left {4, 998000})
write(1, "Select OK\n", 10)             = 10
close(3)                                = 0
close(1)                                = 0
close(0)                                = 0

...

Strace from the non-working PHP (only --with-openssl added for
configure):

read(3, "<?\n$c = stream_socket_client(\"tc"..., 8192) = 221
read(3, "", 4096)                       = 0
read(3, "", 8192)                       = 0
close(3)                                = 0
munmap(0x2a97b2f000, 4096)              = 0
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
close(3)                                = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
fcntl(3, F_GETFL)                       = 0x2 (flags
O_RDWR|O_LARGEFILE)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
connect(3, {sa_family=AF_INET, sin_port=htons(25),
sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now
in progress)
poll([{fd=3, events=POLLIN|POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}],
1, 60000) = 1
getsockopt(3, SOL_SOCKET, SO_ERROR, "\0\0\0\0", [12884901892]) = 0
fcntl(3, F_SETFL, O_RDWR)               = 0
select(4, [3], [], [], {5, 0})          = 1 (in [3], left {4, 998000})
select(4, [3], [], [], {5, 0})          = 1 (in [3], left {5, 0})
select(4, [3], [], [], {5, 0})          = 1 (in [3], left {5, 0})

.. continues until the script is killed

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/32979

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

Reply via email to