Problem/Motivation

The patch in #2458789-48: Introduce PluginDefinitionInterface introduces infinite loops in TypesConfigManager. As this class is used during every single bootstrap, all integration tests fail. They are either stopped by Xdebug (max function nesting), or by hitting the memory or execution time limits.

Several testbots have crashed today. The aforementioned problem may have been the cause of this.

Proposed resolution

To be determined.

Remaining tasks

To be determined.

User interface changes

To be determined.

API changes

To be determined.

Comments

Xano’s picture

Issue summary: View changes
xjm’s picture

Issue tags: +Configuration system
Mixologic’s picture

This particular testbot problem is actually pretty simple - when there is so much ooming, we end up with very large sqlite database. When the testbots go to clean up the database, it uses run-tests.sh --clean to 'clean up after itself', which makes sqlite do a 'drop table'. This for some reason needs a bunch *more* disk space to drop the table, but we keep the sqlite db on a tmpfs so that its all in memory, so we dont have enough space to remove the old test data.
Perhaps we could patch run-tests.sh to not just 'drop table' but to delete the sqlite file and start over or something: http://cgit.drupalcode.org/drupal/tree/core/scripts/run-tests.sh#n499.

alexpott’s picture

Priority: Critical » Normal

So my 2 cents on this is that we need to reduce the php memory limit to 128mb on the bots since this is what tests need so we'll crash sooner and perhaps with less bad effects. See #2495411: Make simpletest fail a test when it detects pages that need more than 64MB for memory usage during tests.

The current memory limit:

php -i | grep memory
memory_limit => 320M => 320M

Can;t see how this is critical or even major. New uncommitted code introducing an infinite loop?

alexpott’s picture

Priority: Normal » Critical

Lol core committer is only thinking about the core queue... this is not that.

Mixologic’s picture

Title: Testbots possibly crash because of massive PHP memory limit hits » Testbots possibly crash because sqlite isn't properly cleaned up when OOM'ing

Im updating the issue title, because this isn't restricted to just memory limits. That was symptomatic, but anytime a test run produces reams and reams of output, causing the sqlite testresult database to get too big, it will cause all further testing to bail on that bot. It could also be issues with php doing a fatal error and not cleaning up properly as well. In any case we can solve this with a patch to run-tests.sh that removes the file vs doing a drop table. So no matter what class of problem would cause the sqlite database to get huge, we could at least know it wouldnt crush the bot for further testing.