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