go to bug id or search bugs for
Wincache uses the IIS Application Pool ID to create the shared memory block for its caches (opcode, file, session).
If IIS is configured to have more than one PHP version within a single AppPool, then opcode arrays from different PHP versions will be stored in the same Wincache opcode cache. If a single *.php file is compiled by two different PHP versions within the same AppPool, one PHP version will get a cached opcode array that was compiled for the other PHP version. This may lead to AVs.
Additionally, if two different PHP versions specify different Wincache cache sizes (ocachesize, fcachesize, ucachesize, or internedsize), then Wincache will perform incorrect calculations when adding or removing items from its caches, and potentially deadlock.
No A/V and/or deadlock when using Wincache with different PHP versions in a single AppPool
A/V and/or deadlock
Add a Patch
Add a Pull Request
Workaround: use the wincache.namesalt setting in the system-level php.ini for each PHP version. This will separate the caches within a single AppPool.
Would it make sense to automatically add major and minor version as prefix for the name directly in wincache? That should prevent users to wonder what happens. I can write a patch quickly for that, if it is something you like to do :)
Since the wincache.namesalt is used for this exact scenario, there is no need to add additional code into WinCache.