From a6e9c23016d115541f3d089cb6885441e287ada8 Mon Sep 17 00:00:00 2001 From: Dan Poltawski Date: Fri, 21 Aug 2015 14:48:36 +0100 Subject: [PATCH] MDL-51109 task: more debug info for failed scheduled tasks --- admin/tool/task/cli/schedule_task.php | 8 ++++++++ lib/cronlib.php | 16 ++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/admin/tool/task/cli/schedule_task.php b/admin/tool/task/cli/schedule_task.php index 6904d48c8ba..659ee2e82ed 100644 --- a/admin/tool/task/cli/schedule_task.php +++ b/admin/tool/task/cli/schedule_task.php @@ -149,6 +149,14 @@ if ($execute = $options['execute']) { mtrace("... used " . ($DB->perf_get_queries() - $predbqueries) . " dbqueries"); mtrace("... used " . (microtime(true) - $pretime) . " seconds"); mtrace("Task failed: " . $e->getMessage()); + if ($CFG->debugdeveloper) { + if (!empty($e->debuginfo)) { + mtrace("Debug info:"); + mtrace($e->debuginfo); + } + mtrace("Backtrace:"); + mtrace(format_backtrace($e->getTrace(), true)); + } \core\task\manager::scheduled_task_failed($task); get_mailer('close'); exit(1); diff --git a/lib/cronlib.php b/lib/cronlib.php index 5db8ba8bb2b..e6e6b464476 100644 --- a/lib/cronlib.php +++ b/lib/cronlib.php @@ -91,6 +91,14 @@ function cron_run() { mtrace("... used " . (microtime(1) - $pretime) . " seconds"); } mtrace("Scheduled task failed: " . $task->get_name() . "," . $e->getMessage()); + if ($CFG->debugdeveloper) { + if (!empty($e->debuginfo)) { + mtrace("Debug info:"); + mtrace($e->debuginfo); + } + mtrace("Backtrace:"); + mtrace(format_backtrace($e->getTrace(), true)); + } \core\task\manager::scheduled_task_failed($task); } get_mailer('close'); @@ -127,6 +135,14 @@ function cron_run() { mtrace("... used " . (microtime(1) - $pretime) . " seconds"); } mtrace("Adhoc task failed: " . get_class($task) . "," . $e->getMessage()); + if ($CFG->debugdeveloper) { + if (!empty($e->debuginfo)) { + mtrace("Debug info:"); + mtrace($e->debuginfo); + } + mtrace("Backtrace:"); + mtrace(format_backtrace($e->getTrace(), true)); + } \core\task\manager::adhoc_task_failed($task); } get_mailer('close');