Bug #75854 [Wfx]: The mistake occurs when php7 executes as by command line as by webserver.

From: Date: Wed, 31 Jan 2018 19:34:57 +0000
Subject: Bug #75854 [Wfx]: The mistake occurs when php7 executes as by command line as by webserver.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-213769@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75854&edit=1 ID: 75854 Updated by: ab@php.net Reported by: shamardin74 at rambler dot ru Summary: The mistake occurs when php7 executes as by command line as by webserver. Status: Wont fix Type: Bug Package: Performance problem Operating System: Windows 7 (32 bit) PHP Version: 7.0.27 Block user comment: N Private report: N New Comment: @shamardin74 just in the case you want to build yourself, what you could do perhaps is to patch the CFLAGS. What you basically want is as per https://msdn.microsoft.com/en-us/library/7t5yh4fd.aspx either /arch:IA32 or /arch:SSE, depending on your old CPU capabilities. You can do that directly in the Makefile, after the configure script is run. Though, please note, that you'll eventually need to rebuild all the dependencies required, as the dependencies are likely to contain SSE2 instructions, too. Thanks. Previous Comments: ------------------------------------------------------------------------ [2018-01-29 17:42:51] ab@php.net Ok, setting to won't fix now. As SSE2 builds are default for long already, suddenly changing the build options would sure show performance impacts to existing apps. Also, in the light of the latest security vulnerabilities regarding Meltdown and Spectre, the mitigation requires SSE2. Thanks. ------------------------------------------------------------------------ [2018-01-27 03:22:42] mattficken@php.net I test all php releases across Win7+, but all my hardware has SSE2 support (most are SSE4) so I can't reproduce this issue. PHP 7.0+ requires VC14. AFAIR VC14 requires SSE2, therefore supporting pre-SSE2 would be really hard. PHP 7.0+ requires Win7. While Win7 doesn't require SSE2, Win7 isn't supported anymore, so fixing the issue for the few pre-SSE2 Win7 machines would still result in an unsupported situation anyway. Provided this issue is just not having SSE2 support, this issue should be closed as a dont fix. Maybe try PHP 5.6 or 5.5. Its not supported, but then neither is Win7 and probably other apps on that machine. ------------------------------------------------------------------------ [2018-01-25 09:32:50] ab@php.net Thanks for more info! If the processor is older than Pentium 4 or alike, then it's the movsd instruction for sure. Please check with https://docs.microsoft.com/en-us/sysinternals/downloads/coreinfo or any other suitable tool for more clarity. The 32-bit builds supplied by windows.php.net already default to SSE2 starting with PHP 5.5 actually. No much issues was seen since then, however. If it's confirmed to be a pre SSE2 processor, then i'd say it's a won't fix case. I it won't be able to run many other binaries produced last couple of years. Thanks. ------------------------------------------------------------------------ [2018-01-24 12:32:45] shamardin74 at rambler dot ru When run php-7.0.27 on windows 7 32-bit occurs the error in module php7ts.dll. This occurs in step of initialization of application. call_stack: -> php7ts.dll!sapi_activate() line 457 + 0x11 bytes php7ts.dll!php_module_startup(_sapi_module_struct * sf, _zend_module_entry * additional_modules, unsigned int num_additional_modules) line 2072 php.exe!php_cli_startup(_sapi_module_struct * sapi_module) line 426 + 0xe bytes php.exe!main(int argc, char * * argv) line 1327 + 0x2 bytes php.exe!__scrt_common_main_seh() line 253 + 0x1d bytes kernel32.dll!775aed6c() [Specified below frames can be invalid and (or) be absent, symbols for kernel32.dll not loaded] ntdll.dll!77b637eb() ntdll.dll!77b637be() disassembled_source: 456: SG(request_info).proto_num = 1000; /* Default to HTTP 1.0 */ 6A0B8E8D 8B 47 04 mov eax,dword ptr [edi+4] 6A0B8E90 8B 08 mov ecx,dword ptr [eax] 6A0B8E92 A1 58 DB 78 6A mov eax,dword ptr [_sapi_globals_id (6A78DB58h)] 6A0B8E97 8B 44 81 FC mov eax,dword ptr [ecx+eax*4-4] 6A0B8E9B C7 40 50 E8 03 00 00 mov dword ptr [eax+50h],3E8h 457: SG(global_request_time) = 0; 6A0B8EA2 8B 47 04 mov eax,dword ptr [edi+4] 6A0B8EA5 8B 08 mov ecx,dword ptr [eax] 6A0B8EA7 0F 57 C0 xorps xmm0,xmm0 6A0B8EAA A1 58 DB 78 6A mov eax,dword ptr [_sapi_globals_id (6A78DB58h)] 6A0B8EAF 8B 44 81 FC mov eax,dword ptr [ecx+eax*4-4] -> 6A0B8EB3 F2 0F 11 80 C8 00 00 00 movsd mmword ptr [eax+0C8h],xmm0 458: SG(post_read) = 0; 6A0B8EBB 8B 47 04 mov eax,dword ptr [edi+4] 6A0B8EBE 8B 08 mov ecx,dword ptr [eax] 6A0B8EC0 A1 58 DB 78 6A mov eax,dword ptr [_sapi_globals_id (6A78DB58h)] 6A0B8EC5 8B 44 81 FC mov eax,dword ptr [ecx+eax*4-4] 6A0B8EC9 88 98 88 00 00 00 mov byte ptr [eax+88h],bl 459: /* It's possible to override this general case in the activate() callback, if necessary. */ 460: if (SG(request_info).request_method && !strcmp(SG(request_info).request_method, "HEAD")) { registers_content: (intel) eax 0x0021afa0 ebx 0x00000000 ecx 0x00212560 edx 0x00212c30 esi 0x00d95020 edi 0x00212c30 mm0 0x0000000000000000 mm1 0x0000000000000000 mm2 0x0000000000000000 Perhaps that is instruction SSE2 which is not supported by 32-bit processor. ------------------------------------------------------------------------ [2018-01-22 12:01:09] ab@php.net Thank you for this bug report. To properly diagnose the problem, we need a backtrace to see what is happening behind the scenes. To find out how to generate a backtrace, please read http://bugs.php.net/bugs-generating-backtrace.php for *NIX and http://bugs.php.net/bugs-generating-backtrace-win32.php for Win32 Once you have generated a backtrace, please submit it to this bug report and change the status back to "Open". Thank you for helping us make PHP better. Also, is some reproduce script available? Thanks. ------------------------------------------------------------------------ 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 https://bugs.php.net/bug.php?id=75854 -- Edit this bug report at https://bugs.php.net/bug.php?id=75854&edit=1

« previous php.bugs (#213769) next »