Commit 83741b3a authored by catch's avatar catch
Browse files

Issue #2859704 by alexpott, tacituseu, xjm, vaplas, mpdonadio, catch,...

Issue #2859704 by alexpott, tacituseu, xjm, vaplas, mpdonadio, catch, Mixologic: Intermittent segfaults on DrupalCI (some did
parent 6f7c56cf
......@@ -870,6 +870,16 @@ protected function initializeContainer() {
// If there is no container and no cached container definition, build a new
// one from scratch.
if (!isset($container) && !isset($container_definition)) {
// Building the container creates 1000s of objects. Garbage collection of
// these objects is expensive. This appears to be causing random
// segmentation faults in PHP 5.6 due to
// https://bugs.php.net/bug.php?id=72286. Once the container is rebuilt,
// garbage collection is re-enabled.
$disable_gc = version_compare(PHP_VERSION, '7', '<') && gc_enabled();
if ($disable_gc) {
gc_collect_cycles();
gc_disable();
}
$container = $this->compileContainer();
// Only dump the container if dumping is allowed. This is useful for
......@@ -879,6 +889,11 @@ protected function initializeContainer() {
$dumper = new $this->phpArrayDumperClass($container);
$container_definition = $dumper->getArray();
}
// If garbage collection was disabled prior to rebuilding container,
// re-enable it.
if ($disable_gc) {
gc_enable();
}
}
// The container was rebuilt successfully.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment