|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2020-03-19 12:38 UTC] cmb@php.net
[2021-02-16 14:21 UTC] cmb@php.net
-Status: Open
+Status: Duplicate
-Assigned To:
+Assigned To: cmb
[2021-02-16 14:21 UTC] cmb@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 08 04:00:01 2025 UTC |
Description: ------------ PHP assigns unique number for every resource created. Number are unique for application lifetime (they aren't reused even after resource is gone). After creating around 2147483647 resources without terminating application, every function returning stream or maybe even resource (tested on fopen() & stream_socket_accept() w/ TCP server) stops working and begins returning "resource(2147483647) of type (Unknown)". Due to test duration (2h using fopen() and 30h using TCP sockets) it was performed on 32-bit Linux (Debian Jessie) only. It probably affects 64-bit as well as other OSs. Test script: --------------- <?php /* Tested under x86 CLI, configuration: --disable-cgi --without-kerberos --disable-bcmath --with-bz2=/usr --disable-calendar --without-curl --disable-dba --disable-exif --disable-ftp --without-gd --without-gettext --without-gmp --without-iconv --without-imap --without-ldap --without-mcrypt --without-mssql --without-mysql --without-mysqli --without-adabas --without-ibm-db2 --without-iodbc --disable-pcntl --disable-pdo --without-pgsql --without-libedit --without-readline --disable-soap --without-xmlrpc --without-openssl --without-zlib --disable-ctype --disable-xml --disable-filter --disable-json --disable-dom --disable-libxml --disable-mbstring --disable-mbregex --disable-simplexml --disable-hash --without-bz2 --disable-all --without-pear --enable-cli --enable-sockets --enable-debug */ while(true) { $clt = fopen("/dev/null", "w"); //Also tested with stream_socket_accept($server) $cltInt = (int)$clt; var_dump($clt, $cltInt); fclose($clt); } Actual result: -------------- resource(5) of type (stream) int(5) (...) resource(2147483647) of type (Unknown) int(2147483647) Warning: fclose(): 2147483647 is not a valid stream resource in /root/stream_bug.php on line 11