Try to not run into the white page of death and still log something in the web server error log
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
parent
eded07f28f
commit
478b95cc20
2 changed files with 21 additions and 5 deletions
|
@ -50,8 +50,12 @@ try {
|
||||||
try {
|
try {
|
||||||
OC_Template::printErrorPage($ex->getMessage(), $ex->getHint(), 503);
|
OC_Template::printErrorPage($ex->getMessage(), $ex->getHint(), 503);
|
||||||
} catch (Exception $ex2) {
|
} catch (Exception $ex2) {
|
||||||
\OC::$server->getLogger()->logException($ex, array('app' => 'index'));
|
try {
|
||||||
\OC::$server->getLogger()->logException($ex2, array('app' => 'index'));
|
\OC::$server->getLogger()->logException($ex, array('app' => 'index'));
|
||||||
|
\OC::$server->getLogger()->logException($ex2, array('app' => 'index'));
|
||||||
|
} catch (Throwable $e) {
|
||||||
|
// no way to log it properly - but to avoid a white page of death we try harder and ignore this one here
|
||||||
|
}
|
||||||
|
|
||||||
//show the user a detailed error page
|
//show the user a detailed error page
|
||||||
OC_Template::printExceptionErrorPage($ex, 500);
|
OC_Template::printExceptionErrorPage($ex, 500);
|
||||||
|
|
|
@ -358,9 +358,21 @@ class OC_Template extends \OC\Template\Base {
|
||||||
$content->assign('requestID', $request->getId());
|
$content->assign('requestID', $request->getId());
|
||||||
$content->printPage();
|
$content->printPage();
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$logger = \OC::$server->getLogger();
|
try {
|
||||||
$logger->logException($exception, ['app' => 'core']);
|
$logger = \OC::$server->getLogger();
|
||||||
$logger->logException($e, ['app' => 'core']);
|
$logger->logException($exception, ['app' => 'core']);
|
||||||
|
$logger->logException($e, ['app' => 'core']);
|
||||||
|
} catch (Throwable $e) {
|
||||||
|
// no way to log it properly - but to avoid a white page of death we send some output
|
||||||
|
header('Content-Type: text/plain; charset=utf-8');
|
||||||
|
print("Internal Server Error\n\n");
|
||||||
|
print("The server encountered an internal error and was unable to complete your request.\n");
|
||||||
|
print("Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.\n");
|
||||||
|
print("More details can be found in the server log.\n");
|
||||||
|
|
||||||
|
// and then throw it again to log it at least to the web server error log
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
|
||||||
header('Content-Type: text/plain; charset=utf-8');
|
header('Content-Type: text/plain; charset=utf-8');
|
||||||
print("Internal Server Error\n\n");
|
print("Internal Server Error\n\n");
|
||||||
|
|
Loading…
Reference in a new issue