HomePhabricator

Fix namespace manager jumps back to initial settings when opcache is enabled

Authored by Pwirth on Mar 8 2019, 1:42 PM.

Description

Fix namespace manager jumps back to initial settings when opcache is enabled

When opcache is enabled it somehow corrupts the value $aDefinition in the foreach loop. This array is not existen in the if statement even though it is fine whenever you acces it somehow before the statement.
This happens only on less then half the machines tested in various php
versions

Additional Information

There seems to be a bug with opcache ZEND_OPTIMIZER_PASS_14
which is the optimizatio level for dead code elimination.
When this is disabled by setting
opcache.optimization_level=0x7FFF9FFF
instead of
opcache.optimization_level=0x7FFFBFFF
in php.ini then the wrong behaviour does not occur.
the further cause for the wronly optimization was not further
investigated.

ERM:14431

> Needs cherry-pick to REl1_31

Change-Id: Icf92f481f5c294dcc6ec401440230675ce0d488e