Commit f8d09132 authored by catch's avatar catch

Issue #2159459 by sun: Rebuild script triggers errors in error handler, fails to rebuild container.

parent 7240b39b
......@@ -373,12 +373,14 @@ function format_backtrace(array $backtrace) {
else {
$call['function'] = 'main';
}
foreach ($trace['args'] as $arg) {
if (is_scalar($arg)) {
$call['args'][] = is_string($arg) ? '\'' . filter_xss($arg) . '\'' : $arg;
}
else {
$call['args'][] = ucfirst(gettype($arg));
if (isset($trace['args'])) {
foreach ($trace['args'] as $arg) {
if (is_scalar($arg)) {
$call['args'][] = is_string($arg) ? '\'' . filter_xss($arg) . '\'' : $arg;
}
else {
$call['args'][] = ucfirst(gettype($arg));
}
}
}
$return .= $call['function'] . '(' . implode(', ', $call['args']) . ")\n";
......
......@@ -34,6 +34,12 @@ function drupal_var_export($var, $prefix = '') {
* @see rebuild.php
*/
function drupal_rebuild() {
// Remove Drupal's error and exception handlers; they rely on a working
// service container and other subsystems and will only cause a fatal error
// that hides the actual error.
restore_error_handler();
restore_exception_handler();
// drupal_bootstrap(DRUPAL_BOOTSTRAP_KERNEL) will build a new kernel. This
// comes before DRUPAL_BOOTSTRAP_PAGE_CACHE.
PhpStorageFactory::get('service_container')->deleteAll();
......@@ -50,4 +56,9 @@ function drupal_rebuild() {
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
drupal_flush_all_caches();
// Restore Drupal's error and exception handlers.
// @see _drupal_bootstrap_configuration()
set_error_handler('_drupal_error_handler');
set_exception_handler('_drupal_exception_handler');
}
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