Bug #71024 [NEW]: Unable to use PHP 7.0 x64 side-by-side with PHP 5.6 x32 on the same server
| From: | pvasilevich at odin dot com | Date: | Fri, 04 Dec 2015 08:42:54 +0000 |
| Subject: | Bug #71024 [NEW]: Unable to use PHP 7.0 x64 side-by-side with PHP 5.6 x32 on the same server | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-197582@lists.php.net to get a copy of this message | ||
From: pvasilevich at odin dot com
Operating system: Windows
PHP version: 7.0.0
Package: opcache
Bug Type: Bug
Bug description:Unable to use PHP 7.0 x64 side-by-side with PHP 5.6 x32 on the same server
Description:
------------
STEPS TO REPRODUCE:
1) create site in IIS and configure it to use PHP 5.6 x86 for it.
2) create virtual directory (in this case the same pool user will be
used for both PHP) and configure PHP 7.0 x64 on it.
3) browse site pages that handled by PHP 5.6 - everything works fine.
Notice, that C:\Windows\Temp\ZendOPcache.MemoryBase@user file was
created, and process php-cgi.exe holds handle to
\BaseNamedObjects\ZendOPcache.SharedMemoryArea@user shared memory
4) then try to request pages under virtual directory handled by PHP 7.0
Expected result:
----------------
There could be several solutions and workarounds here. The most elegant
and stable (appropriate for all following release as well) will be
solution to differentiate shared memory names, and mmap_base files by
name. Proposed solution is to include PHP version and architecture in
file name and shared memory name, and mutex.
This can separate memory objects between different versions on servers,
make it more stable.
The following request looks quite similar:
https://github.com/zendtech/ZendOptimizerPlus/issues/109
Actual result:
--------------
500 Internal server error.
Looking at crash dump you can see:
000000de
14eeeea0 00007ff9831433e1
php_opcache!accel_new_interned_string+0x27
[c:\php-sdk\php70dev\vc14\x64\php-7.0.0\ext\opcache\zendaccelerator.c @
330]
000000de14eeeee0 00007ff9831466ca
php_opcache!accel_use_shm_interned_strings+0x21
[c:\php-sdk\php70dev\vc14\x64\php-7.0.0\ext\opcache\zendaccelerator.c @
395]
000000de14eeef20 00007ff975847634 php_opcache!accel_startup+0x1fa
[c:\php-sdk\php70dev\vc14\x64\php-7.0.0\ext\opcache\zendaccelerator.c @
2662]
000000de14eeef50 00007ff9757ab25b php7!zend_extension_startup+0x24
[c:\php-sdk\php70dev\vc14\x64\php-7.0.0\zend\zend_extensions.c @ 176]
000000de14eeef80 00007ff97544268c
php7!zend_llist_apply_with_del+0x357ebb
[c:\php-sdk\php70dev\vc14\x64\php-7.0.0\zend\zend_llist.c @ 171]
000000de14eeefc0 00007ff721142787 php7!php_module_startup+0x95c
[c:\php-sdk\php70dev\vc14\x64\php-7.0.0\main\main.c @ 2199]
000000de14eef4c0 00007ff7211448ec php_cgi!php_cgi_startup+0x17
[c:\php-sdk\php70dev\vc14\x64\php-7.0.0\sapi\cgi\cgi_main.c @ 918]
000000de14eef4f0 00007ff721148d40 php_cgi!main+0x5bc
[c:\php-sdk\php70dev\vc14\x64\php-7.0.0\sapi\cgi\cgi_main.c @ 1899]
000000de14eefa20 00007ff993271611 php_cgi!__scrt_common_main_seh+0x124
[f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 264]
000000de14eefa60 00007ff9935a64ad kernel32!BaseThreadInitThunk+0xd
000000de14eefa90 0000000000000000 ntdll!RtlUserThreadStart+0x1d
In fact PHP 7 tries to use the same memory (looking for the same memory
object name). Looks like because PHP 7 is 64-bit process, structure of
the memory is different, that brings to crash.
--
Edit bug report at https://bugs.php.net/bug.php?id=71024&edit=1
--
Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=71024&r=trysnapshot54
Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=71024&r=trysnapshot55
Try a snapshot (trunk): https://bugs.php.net/fix.php?id=71024&r=trysnapshottrunk
Fixed in SVN: https://bugs.php.net/fix.php?id=71024&r=fixed
Fixed in release: https://bugs.php.net/fix.php?id=71024&r=alreadyfixed
Need backtrace: https://bugs.php.net/fix.php?id=71024&r=needtrace
Need Reproduce Script: https://bugs.php.net/fix.php?id=71024&r=needscript
Try newer version: https://bugs.php.net/fix.php?id=71024&r=oldversion
Not developer issue: https://bugs.php.net/fix.php?id=71024&r=support
Expected behavior: https://bugs.php.net/fix.php?id=71024&r=notwrong
Not enough info: https://bugs.php.net/fix.php?id=71024&r=notenoughinfo
Submitted twice: https://bugs.php.net/fix.php?id=71024&r=submittedtwice
register_globals: https://bugs.php.net/fix.php?id=71024&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=71024&r=php4
Daylight Savings: https://bugs.php.net/fix.php?id=71024&r=dst
IIS Stability: https://bugs.php.net/fix.php?id=71024&r=isapi
Install GNU Sed: https://bugs.php.net/fix.php?id=71024&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=71024&r=float
No Zend Extensions: https://bugs.php.net/fix.php?id=71024&r=nozend
MySQL Configuration Error: https://bugs.php.net/fix.php?id=71024&r=mysqlcfg