From 9f064546558f3c33ab6c95f5e2d079bae6c53c6e Mon Sep 17 00:00:00 2001
From: toyomoyo <toyomoyo>
Date: Thu, 25 Oct 2007 04:02:41 +0000
Subject: [PATCH] MDL-11893, email admin when add_to_log() fails

---
 lib/datalib.php | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/lib/datalib.php b/lib/datalib.php
index 93d40c40bc..45dda34398 100644
--- a/lib/datalib.php
+++ b/lib/datalib.php
@@ -1835,6 +1835,17 @@ function add_to_log($courseid, $module, $action, $url='', $info='', $cm=0, $user
     $result = $db->Execute('INSERT INTO '. $CFG->prefix .'log (time, userid, course, ip, module, cmid, action, url, info)
         VALUES (' . "'$timenow', '$userid', '$courseid', '$REMOTE_ADDR', '$module', '$cm', '$action', '$url', '$info')");
 
+    // MDL-11893, alert $CFG->supportemail if insert into log failed
+    if (!result && $CFG->supportemail) {
+        $site = get_site();
+        $subject = 'Insert into log failed at your moodle site '.$site->fullname;
+        $message = 'Insert into log table failed at '.date('l dS \of F Y h:i:s A').'. It is possible that your disk is full.';
+        
+        // email_to_user is not usable because email_to_user tries to write to the logs table, and this will get caught
+        // in an infinite loop, if disk is full
+        mail($CFG->supportemail, $subject, $message);
+    }
+
     if (!$result and debugging()) {
         echo '<p>Error: Could not insert a new entry to the Moodle log</p>';  // Don't throw an error
     }
-- 
2.39.5