Bug #74410 [Csd]: stream_select() is broken on Windows Nanoserver

From: Date: Tue, 11 Apr 2017 09:01:33 +0000
Subject: Bug #74410 [Csd]: stream_select() is broken on Windows Nanoserver
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-208471@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=74410&edit=1 ID: 74410 Updated by: mattficken@php.net Reported by: mattficken@php.net Summary: stream_select() is broken on Windows Nanoserver Status: Closed Type: Bug Package: Streams related Operating System: Windows Nanoserver PHP Version: 7.1.3 -Assigned To: +Assigned To: mattficken Block user comment: N Private report: N New Comment: Fixed Previous Comments: ------------------------------------------------------------------------ [2017-04-11 09:00:18] mattficken@php.net Automatic comment on behalf of mattficken Revision: http://git.php.net/?p=php-src.git;a=commit;h=d83743739e38c3174be66815d90257856b0e1e07 Log: Fix #74410 by calling WaitForMultipleObjects() instead of MsgWaitForMultipleObjects() ------------------------------------------------------------------------ [2017-04-11 09:00:12] mattficken@php.net Automatic comment on behalf of mattficken Revision: http://git.php.net/?p=php-src.git;a=commit;h=76c9b584319b75b203c7e1ed7ed82b7bdbe4c442 Log: Fix #74410 by calling WaitForMultipleObjects() instead of MsgWaitForMultipleObjects() ------------------------------------------------------------------------ [2017-04-11 07:54:55] mattficken@php.net Calling WaitForMultipleObjects() instead of MsgWaitForMultipleObjects() is the solution - so no special action is needed for Nanoserver. With this patch, stream_selct() still works on regular Windows and works again on Nanoserver. Verified with run-tests.php. ------------------------------------------------------------------------ [2017-04-11 07:53:56] mattficken@php.net Description: ------------ stream_select() is broken by recent updates to Nanoserver, the reduced resource edition of Windows Server (Nanoserver supports x64 applications and enough windows APIs that PHP and most applications run on it like any other edition of Windows, just with no GUI). For standard streams, such as with proc_open from system_with_timeout() function in run-tests.php, stream_select() will return FALSE immediately regardless of any pending IO on those streams. Ultimately, this is caused because recently Nanoserver deprecated/stubbed MsgWaitForMultipleObjects(), which is used by php_select() which is used by PHP on regular Windows and Nanoserver (which only support select() for sockets). ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=74410&edit=1

« previous php.bugs (#208471) next »