#32979 [Com]: socket stream opened with stream_socket_client doesnt work with stream_select
ID: 32979 Comment by: stotty at tvnet dot hu Reported By: mjpph at stardust dot fi Status: Assigned Bug Type: Streams related Operating System: Linux (Fedora Core 3) PHP Version: 5CVS-2006-01-18 (dev) Assigned To: wez New Comment: Joe Orton has analyzed the bug and found the root cause, see here: http://marc.info/?l=php-internals&m=120522857529781&w=2 Previous Comments: [2007-10-08 06:03:08] roberto at spadim dot com dot br without openssl everythink work ok now, socket and stream where could i send .php files to develop team check it? [2007-10-08 05:37:14] roberto at spadim dot com dot br the problem occur with php 5.2.4 [2007-10-08 05:32:50] roberto at spadim dot com dot br i'm having the same problem with xeon quad core (prolian HP) on linux socket_select work ok but stream_select don't work i will recompile php without openssl and check what happen [2006-08-25 19:19:54] stotty at tvnet dot hu Bug is still present in 5.1.4 [2006-01-31 23:08:00] stotty at tvnet dot hu I have compared the original socket operations code, and the one in the xp_ssl.x file, and it seems that even in the non-ssl path the code is not identical. I have fixed four differences, two of which caused some functions to be called twice, and two of which are casting to *(int*) I do not claim to know the real cause for the bug, and how these changes fix the problem, but they do, and they make the code more consistent, and faster, so I think they should be committed. Here is the patch that solves this problem form me (against 5.1.2) cut here--- *** php-5.1.2/ext/openssl/xp_ssl.c 2006-01-01 13:50:10.0 +0100 --- php-5.1.2ssl/ext/openssl/xp_ssl.c 2006-01-31 23:00:58.0 +0100 *** *** 188,194 } while(retry); } else { ! didwrite = php_stream_socket_ops.write(stream, buf, count TSRMLS_CC); } if (didwrite > 0) { --- 188,195 } while(retry); } else { ! didwrite = php_stream_socket_ops.write(stream, buf, count TSRMLS_CC); ! return didwrite; } if (didwrite > 0) { *** *** 226,231 --- 227,233 else { nr_bytes = php_stream_socket_ops.read(stream, buf, count TSRMLS_CC); + return nr_bytes; } if (nr_bytes > 0) { *** *** 636,642 case PHP_STREAM_AS_FD_FOR_SELECT: if (ret) { ! *ret = (void*)sslsock->s.socket; } return SUCCESS; --- 638,644 case PHP_STREAM_AS_FD_FOR_SELECT: if (ret) { ! *(int*)ret = (void*)sslsock->s.socket; } return SUCCESS; *** *** 646,652 return FAILURE; } if (ret) { ! *ret = (void*)sslsock->s.socket; } return SUCCESS; default: --- 648,654 return FAILURE; } if (ret) { ! *(int*)ret = (void*)sslsock->s.socket; } return SUCCESS; default: cut here--- 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
#32979 [Com]: socket stream opened with stream_socket_client doesnt work with stream_select
ID: 32979 Comment by: stotty at tvnet dot hu Reported By: mjpph at stardust dot fi Status: Assigned Bug Type: Streams related Operating System: Linux (Fedora Core 3) PHP Version: 5CVS-2006-01-18 (dev) Assigned To: wez New Comment: Bug is still present in 5.1.4 Previous Comments: [2006-01-31 23:08:00] stotty at tvnet dot hu I have compared the original socket operations code, and the one in the xp_ssl.x file, and it seems that even in the non-ssl path the code is not identical. I have fixed four differences, two of which caused some functions to be called twice, and two of which are casting to *(int*) I do not claim to know the real cause for the bug, and how these changes fix the problem, but they do, and they make the code more consistent, and faster, so I think they should be committed. Here is the patch that solves this problem form me (against 5.1.2) cut here--- *** php-5.1.2/ext/openssl/xp_ssl.c 2006-01-01 13:50:10.0 +0100 --- php-5.1.2ssl/ext/openssl/xp_ssl.c 2006-01-31 23:00:58.0 +0100 *** *** 188,194 } while(retry); } else { ! didwrite = php_stream_socket_ops.write(stream, buf, count TSRMLS_CC); } if (didwrite > 0) { --- 188,195 } while(retry); } else { ! didwrite = php_stream_socket_ops.write(stream, buf, count TSRMLS_CC); ! return didwrite; } if (didwrite > 0) { *** *** 226,231 --- 227,233 else { nr_bytes = php_stream_socket_ops.read(stream, buf, count TSRMLS_CC); + return nr_bytes; } if (nr_bytes > 0) { *** *** 636,642 case PHP_STREAM_AS_FD_FOR_SELECT: if (ret) { ! *ret = (void*)sslsock->s.socket; } return SUCCESS; --- 638,644 case PHP_STREAM_AS_FD_FOR_SELECT: if (ret) { ! *(int*)ret = (void*)sslsock->s.socket; } return SUCCESS; *** *** 646,652 return FAILURE; } if (ret) { ! *ret = (void*)sslsock->s.socket; } return SUCCESS; default: --- 648,654 return FAILURE; } if (ret) { ! *(int*)ret = (void*)sslsock->s.socket; } return SUCCESS; default: cut here--- [2006-01-30 09:41:28] stotty at tvnet dot hu I've done some testing, and this bug is definitely triggered by 64 bit+ SSL support. Bug triggers: FC4 64 bit + PHP5.1.2 (configure --with-openssl) FC4 64 bit + PHP 5.1Jan 29 snapshot (configure --with-openssl) Bug does not trigger: FC4 64 bit + PHP 5.1.2 (configure) FC4 64 bit + PHP 5.1Jan29 snapshot (configure) FC4 32 bit + PHP 5.1.2 (configure --with-openssl) FC4 32 bit + PHP 5.0.4-10.5 (stock FC RPM) [2006-01-17 23:08:59] mjpph at stardust dot fi Doesn't work with the php5.1-200601172130.tar.gz snapshot nor with 5.1.2. [2005-11-07 00:08:49] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip [2005-07-28 01:50:49] lew at mailduct dot com wez -- the problems reported here are all due to a previously fixed bug which has crept back into PHP. It has to do with how the PHP library treats EOF under FreeBSD vs Linux. You worked on this problem previously... please take a look at the currently active Bug #32858 reported by me, as well as your prior fix in Bug #25649. Thanks Lew Payne 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
#32979 [Com]: socket stream opened with stream_socket_client doesnt work with stream_select
ID: 32979 Comment by: stotty at tvnet dot hu Reported By: mjpph at stardust dot fi Status: Assigned Bug Type: Streams related Operating System: Linux (Fedora Core 3) PHP Version: 5CVS-2006-01-18 (dev) Assigned To: wez New Comment: I have compared the original socket operations code, and the one in the xp_ssl.x file, and it seems that even in the non-ssl path the code is not identical. I have fixed four differences, two of which caused some functions to be called twice, and two of which are casting to *(int*) I do not claim to know the real cause for the bug, and how these changes fix the problem, but they do, and they make the code more consistent, and faster, so I think they should be committed. Here is the patch that solves this problem form me (against 5.1.2) cut here--- *** php-5.1.2/ext/openssl/xp_ssl.c 2006-01-01 13:50:10.0 +0100 --- php-5.1.2ssl/ext/openssl/xp_ssl.c 2006-01-31 23:00:58.0 +0100 *** *** 188,194 } while(retry); } else { ! didwrite = php_stream_socket_ops.write(stream, buf, count TSRMLS_CC); } if (didwrite > 0) { --- 188,195 } while(retry); } else { ! didwrite = php_stream_socket_ops.write(stream, buf, count TSRMLS_CC); ! return didwrite; } if (didwrite > 0) { *** *** 226,231 --- 227,233 else { nr_bytes = php_stream_socket_ops.read(stream, buf, count TSRMLS_CC); + return nr_bytes; } if (nr_bytes > 0) { *** *** 636,642 case PHP_STREAM_AS_FD_FOR_SELECT: if (ret) { ! *ret = (void*)sslsock->s.socket; } return SUCCESS; --- 638,644 case PHP_STREAM_AS_FD_FOR_SELECT: if (ret) { ! *(int*)ret = (void*)sslsock->s.socket; } return SUCCESS; *** *** 646,652 return FAILURE; } if (ret) { ! *ret = (void*)sslsock->s.socket; } return SUCCESS; default: --- 648,654 return FAILURE; } if (ret) { ! *(int*)ret = (void*)sslsock->s.socket; } return SUCCESS; default: cut here--- Previous Comments: [2006-01-30 09:41:28] stotty at tvnet dot hu I've done some testing, and this bug is definitely triggered by 64 bit+ SSL support. Bug triggers: FC4 64 bit + PHP5.1.2 (configure --with-openssl) FC4 64 bit + PHP 5.1Jan 29 snapshot (configure --with-openssl) Bug does not trigger: FC4 64 bit + PHP 5.1.2 (configure) FC4 64 bit + PHP 5.1Jan29 snapshot (configure) FC4 32 bit + PHP 5.1.2 (configure --with-openssl) FC4 32 bit + PHP 5.0.4-10.5 (stock FC RPM) [2006-01-17 23:08:59] mjpph at stardust dot fi Doesn't work with the php5.1-200601172130.tar.gz snapshot nor with 5.1.2. [2005-11-07 00:08:49] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip [2005-07-28 01:50:49] lew at mailduct dot com wez -- the problems reported here are all due to a previously fixed bug which has crept back into PHP. It has to do with how the PHP library treats EOF under FreeBSD vs Linux. You worked on this problem previously... please take a look at the currently active Bug #32858 reported by me, as well as your prior fix in Bug #25649. Thanks Lew Payne [2005-05-30 22:11:28] mjpph at stardust dot fi I haven't had problems with different kernels. Only the combination of x86_64, stream_socket_client() or stream_socket_server(), stream_select() and PHP OpenSSL-support seem to reproduce this every time. 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/329
#32979 [Com]: socket stream opened with stream_socket_client doesnt work with stream_select
ID: 32979 Comment by: stotty at tvnet dot hu Reported By: mjpph at stardust dot fi Status: Assigned Bug Type: Streams related Operating System: Linux (Fedora Core 3) PHP Version: 5CVS-2006-01-18 (dev) Assigned To: wez New Comment: I've done some testing, and this bug is definitely triggered by 64 bit+ SSL support. Bug triggers: FC4 64 bit + PHP5.1.2 (configure --with-openssl) FC4 64 bit + PHP 5.1Jan 29 snapshot (configure --with-openssl) Bug does not trigger: FC4 64 bit + PHP 5.1.2 (configure) FC4 64 bit + PHP 5.1Jan29 snapshot (configure) FC4 32 bit + PHP 5.1.2 (configure --with-openssl) FC4 32 bit + PHP 5.0.4-10.5 (stock FC RPM) Previous Comments: [2006-01-17 23:08:59] mjpph at stardust dot fi Doesn't work with the php5.1-200601172130.tar.gz snapshot nor with 5.1.2. [2005-11-07 00:08:49] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip [2005-07-28 01:50:49] lew at mailduct dot com wez -- the problems reported here are all due to a previously fixed bug which has crept back into PHP. It has to do with how the PHP library treats EOF under FreeBSD vs Linux. You worked on this problem previously... please take a look at the currently active Bug #32858 reported by me, as well as your prior fix in Bug #25649. Thanks Lew Payne [2005-05-30 22:11:28] mjpph at stardust dot fi I haven't had problems with different kernels. Only the combination of x86_64, stream_socket_client() or stream_socket_server(), stream_select() and PHP OpenSSL-support seem to reproduce this every time. [2005-05-30 21:57:34] fox dot 69 at gmx dot net i experience a similar problem since the latest standard kernel update with yum (host.domain.com point to the main server IP) : http://host.domain.com";; $fp = fopen ($url,"r"); $buffer=fread($fp,8192); fclose($fp); echo $buffer; ?> booted with kernel-2.6.11-1.14_FC3 package: OK booted with kernel-2.6.11-1.27_FC3 package: NOT OK (timeout) NOTE: but only if "host.domain.com" point to the executing host itself - same with "localhost" - for all others it seem to be fine 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
#34203 [NEW]: PHP crashes on PDO prepared query
From: stotty at tvnet dot hu Operating system: Linux Fedora Core 4 PHP version: 5.1.0RC1 PHP Bug Type: PDO related Bug description: PHP crashes on PDO prepared query Description: If a prepared query with named parameters has one of the paramteres used more than once, then PHP fails with a realloc failure, without giving any useable error message. This bug triggers only if called from within a class member function Reproduce code: --- setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION); class Crashme { public function crashfunction($one, $two) { global $dbc; $weight_check_stmt=$dbc->prepare(" select (select total_cpu_weight from domain0 where id= :domain0_id) - (select cpu_weight from domain_template where id= :template_id) - sum(cpu_weight) as result from domain where domain0_id = :domain0_id"); $weight_check_stmt->bindParam(":domain0_id", $one); $weight_check_stmt->bindParam(":template_id", $two); $weight_check_stmt->execute(); } } $crashclass = new Crashme; $crashclass->crashfunction(1,2); ?> Expected result: I exepected to get a meaningfull error message, describing the problem, like I get when the above query is not run from a member function) (like in bug 33886) Actual result: -- I get this in the http error log: FATAL: erealloc(): Unable to allocate 4 bytes -- Edit bug report at http://bugs.php.net/?id=34203&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=34203&r=trysnapshot4 Try a CVS snapshot (php5.0): http://bugs.php.net/fix.php?id=34203&r=trysnapshot50 Try a CVS snapshot (php5.1): http://bugs.php.net/fix.php?id=34203&r=trysnapshot51 Fixed in CVS:http://bugs.php.net/fix.php?id=34203&r=fixedcvs Fixed in release:http://bugs.php.net/fix.php?id=34203&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=34203&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=34203&r=needscript Try newer version: http://bugs.php.net/fix.php?id=34203&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=34203&r=support Expected behavior: http://bugs.php.net/fix.php?id=34203&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=34203&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=34203&r=submittedtwice register_globals:http://bugs.php.net/fix.php?id=34203&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=34203&r=php3 Daylight Savings:http://bugs.php.net/fix.php?id=34203&r=dst IIS Stability: http://bugs.php.net/fix.php?id=34203&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=34203&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=34203&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=34203&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=34203&r=mysqlcfg