localgovdrupal / localgov

Installation profile for the LocalGov Drupal distribution.
GNU General Public License v2.0
78 stars 18 forks source link

LocalGovUpdateTest::testUpdate test failure #738

Open millnut opened 1 week ago

millnut commented 1 week ago

When the test for LocalGovUpdateTest::testUpdate runs it terminates unexpectedly with the following error:

PHPUnit 9.6.19 by Sebastian Bergmann and contributors.

Testing /app/web/profiles/contrib/localgov
F                                                                   1 / 1 (100%)

Time: 00:28.755, Memory: 10.00 MB

There was 1 failure:

1) Drupal\Tests\localgov\Functional\LocalGovUpdateTest::testUpdate
Test was run in child process and ended unexpectedly

/app/vendor/phpunit/phpunit/src/Framework/TestSuite.php:685
/app/vendor/phpunit/phpunit/src/Framework/TestSuite.php:685
/app/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:651
/app/vendor/phpunit/phpunit/src/TextUI/Command.php:146
/app/vendor/phpunit/phpunit/src/TextUI/Command.php:99

Pulling the error.log from the test has this in

[02-Jul-2024 01:12:58 Australia/Sydney] PHP Fatal error:  Maximum call stack size of 8339456 bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached during compilation. Try splitting expression in /app/web/profiles/contrib/localgov/tests/fixtures/localgov-2.3.20.php.gz on line 159086

I haven't had the time to look into this in much more detail, but this is what I've found so far

millnut commented 1 week ago

@stephen-cox just tagging you in this as from the history of the file/test you may have the most context

millnut commented 2 days ago

Hi @stephen-cox @finnlewis I've been looking at this in some more detail and it appears the process to import the dump file localgov-2.3.20.php.gz is overflowing the PHP engine max allowed stack size. This is a new feature of PHP to help reduce segmentation faults, even setting this to -1 to turn it off or setting it to a high value still fails with a Segmentation fault.

The description of this test is Tests LocalGov updates from 2.3.18 to current. given that 2.x is no longer supported and Drupal's plans to move away from profiles to recipes, shall we remove the test LocalGovUpdateTest::testUpdate?

I believe this is the last test failure to get the project running all tests green again.