ID:               41489
 User updated by:  n dot escuder at intra-links dot com
 Reported By:      n dot escuder at intra-links dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         Streams related
 Operating System: Linux 2.6
-PHP Version:      5.2.5
+PHP Version:      5.2-cvs
 Assigned To:      iliaa
 New Comment:

Ok now it's good we got ACCEPT can i not what the problem was ?


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

[2008-11-02 12:44:38] [EMAIL PROTECTED]

Please try using this CVS snapshot:

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

  http://windows.php.net/snapshots/



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

[2008-02-14 12:59:50] n dot escuder at intra-links dot com

After searching in the change since PHP 5.2.1 I found the change who
break this.

The change is in the IMAP extension : 

diff -Naur php-5.2.5/ext/imap/config.m4
php-5.2.5-atl/ext/imap/config.m4
--- php-5.2.5/ext/imap/config.m4        2007-02-11 10:25:32.000000000
+0100
+++ php-5.2.5-atl/ext/imap/config.m4    2007-01-23 13:37:21.000000000
+0100
@@ -1,5 +1,5 @@
 dnl
-dnl $Id: config.m4,v 1.69.4.7 2007/02/11 09:25:32 tony2001 Exp $
+dnl $Id: config.m4,v 1.69.4.6 2007/01/23 12:37:21 bjori Exp $
 dnl
 
 AC_DEFUN([IMAP_INC_CHK],[if test -r "$i$1/c-client.h"; then
@@ -137,7 +137,7 @@
     if test "$ac_cv_utf8_mime2text" = "new"; then
       AC_DEFINE(HAVE_NEW_MIME2TEXT, 1, [Whether utf8_mime2text() has
new signature])
     fi
-    CFLAGS=$old_CFLAGS
+    CFLAGS=$old_CPPFLAGS
 
     old_CFLAGS=$CFLAGS
     CFLAGS="-I$IMAP_INC_DIR"
@@ -152,7 +152,7 @@
          ac_cv_u8t_canonical=no
       ])
     )
-    CFLAGS=$old_CFLAGS
+    CFLAGS=$old_CPPFLAGS
 
     if test "$ac_cv_u8t_canonical" = "no" && test
"$ac_cv_utf8_mime2text" = "new"; then
                AC_MSG_ERROR([utf8_mime2text() has new signature, but
U8T_CANONICAL is missing. This should not happen. Check config.log for
additional information.])

I don't understand why this change break select on ssl but i think it
break something in configure. If i revert this change on php-5.2.5 code
tree and i do an autoreconf command and compile the code, all works
fine.

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

[2008-02-08 17:33:39] jjohnson at insidesales dot com

I'm using 5.2.5 and having similar issues with stream_select and a tcp
stream_socket_server.  I'm using NULL for the timeout, so that the
function call shouldn't return until a stream is available.


$sock = stream_socket_server("tcp://".$address.":".$port, $errno,
$errstr);
$ready = stream_select($reads, $writes, $e = NULL, NULL);

stream_select is returning when there is a stream available, but the
return value is 0 (I've verified that $ready == 0 and $ready !== false).

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

[2007-11-20 09:44:37] n dot escuder at intra-links dot com

The same appear in 5.2.5.

It's seem to be a memory corruption problem.

The retval value change in PHP_FUNCTION(stream_select)

just after executing the line :
if (r_array != NULL) stream_array_from_fd_set(r_array, &rfds
TSRMLS_CC);

Please tell me how can i help you to solve this problem.

I can't upgrade from PHP 5.2.1.

See You

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

[2007-07-13 21:29:56] n dot escuder at intra-links dot com

I try without any certificat and the same problem appear.

I try launch server.php with php-5.2-dev and client with php-5.2.1 and
the same problem appear.

So i decide to lookup into the code. A strange result append i try to
explain :

code in ext/standard/streamsfuncs.c :

    retval = php_select(max_fd+1, &rfds, &wfds, &efds, tv_p);
printf("%d %d\n", max_fd, retval );
    if (retval == -1) {
        php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to select
[%d]: %s (max_fd=%d)",
                errno, strerror(errno), max_fd);
        RETURN_FALSE;
    }
printf("%d\n", retval );
    if (r_array != NULL) stream_array_from_fd_set(r_array, &rfds
TSRMLS_CC);
    if (w_array != NULL) stream_array_from_fd_set(w_array, &wfds
TSRMLS_CC);
    if (e_array != NULL) stream_array_from_fd_set(e_array, &efds
TSRMLS_CC);
printf("%d\n", retval );
    RETURN_LONG(retval);


As you can see i had three printf for debug :o)

I add an var_dump to the result of stream_select in server.php
The strange result i have after i launch client.php is :

3 1 -> First printf with max_fd and retval
1 -> Second printf with retval
0 -> Third printf with retval but the value as changed ....
int(0) -> The var_dump in server.php

So the value change between the second and third printf ;o)

I hope this help

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

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/41489

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

Reply via email to