Bug #76937 [Com]: Drupal tests fail with opcache on

From: 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

« previous php.bugs (#218479) next »