#41489 [Com]: stream_select does not work on ssl stream_socket_server (works in 5.2.1!) on 64b

From: Date: Fri, 08 Feb 2008 17:33:39 +0000
Subject: #41489 [Com]: stream_select does not work on ssl stream_socket_server (works in 5.2.1!) on 64b
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-122097@lists.php.net to get a copy of this message
ID: 41489 Comment by: jjohnson at insidesales dot com Reported By: n dot escuder at intra-links dot com Status: Assigned Bug Type: Streams related Operating System: Linux 2.6 PHP Version: 5.2.5 Assigned To: iliaa New Comment: 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). Previous Comments: ------------------------------------------------------------------------ [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-08-21 15:36:08] n dot escuder at intra-links dot com no news ??? ------------------------------------------------------------------------ [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 ------------------------------------------------------------------------ [2007-07-12 20:42:12] jani@php.net I just realized that of course I don't have this cert/www/conf/ssl/server.pem here. But it can't be the cause..can it? ------------------------------------------------------------------------ [2007-07-10 14:49:09] n dot escuder at intra-links dot com I just retry with : ./configure --prefix=/usr --sysconfdir=/etc --disable-all --enable-sockets --with-openssl --disable-cgi and the same append. ------------------------------------------------------------------------ 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

« previous php.bugs (#122097) next »