Bug #76937 [Com]: Drupal tests fail with opcache on
| From: | matias at avusto dot fi | Date: | Mon, 17 Dec 2018 10:02:06 +0000 |
| Subject: | Bug #76937 [Com]: Drupal tests fail with opcache on | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-218479@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=76937&edit=1
ID: 76937
Comment by: matias at avusto dot fi
Reported by: alex dot a dot pott at gmail dot com
Summary: Drupal tests fail with opcache on
Status: Open
Type: Bug
Package: opcache
Operating System: OSX
PHP Version: 7.3.0RC1
Block user comment: N
Private report: N
New Comment:
Also Grav (www.getgrav.org) unit tests fail if opcache is turned on, but run just fine if opcache is
turned off. Similar issues can be seen in the sites as well (which also work without opcache just
fine).
All the issues seem to be related to Pimple, or offsetGet($id) call which seems to have more or less
random value $id passed to it. Sometimes $id = '', sometimes the value of the $id comes
from a previous offsetGet() call and once it even had value from the following method call
$this->initializeController().. Meaning that the $id = 'initializeController', not $id
= 'task' as written in the code. For some reason in the last case making a random change
(adding a whitespace) in the affected file fixes the issue until opcache gets cleared.
I'm not sure if the issues are related, is $units an ArrayAccess object?
Previous Comments:
------------------------------------------------------------------------
[2018-09-26 14:44:48] alex dot a dot pott at gmail dot com
If I change code in EntityQueryTest:141 from
list($field_name, $langcode, $values) = $units[$key];
$entity->getTranslation($langcode)->{$field_name}[] = $values;
to
list($field_name, $langcode, $values) = $units[$key];
$entity->getTranslation($units[$key][1])->{$units[$key][0]}[] = $units[$key][2];
It works fine. I've tried to produce a snippet that just does the list() and cause the error
but I've not been successful yet.
------------------------------------------------------------------------
[2018-09-26 11:55:30] alex dot a dot pott at gmail dot com
Description:
------------
When running a Drupal test on PHP 7.3 built from PHP-7.3 branch (ie.PHP 7.3.0-dev (cli) (built: Sep
26 2018 11:27:28) ( NTS )) it fails when opcache.enable_cli is 1 and it does not when it is 0.
I've tried to isolate the problem in a smaller script with no Drupal but I've not managed
yet.
The script below fails when the opcache settings are:
opcache.enable=1
opcache.enable_cli=1
But passes when they are
opcache.enable=1
opcache.enable_cli=0
Test script:
---------------
git clone --depth 1 --branch 8.7.x https://git.drupal.org/project/drupal.git
cd drupal
composer install
composer run-script drupal-phpunit-upgrade
SIMPLETEST_DB=sqlite://localhost//tmp/drupal.sqlite ./vendor/bin/phpunit -v -c ./core
core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=76937&edit=1