summaryrefslogtreecommitdiff
path: root/classes/rssutils.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2020-10-18 16:12:58 +0300
committerAndrew Dolgov <[email protected]>2020-10-18 16:12:58 +0300
commitf1fd5e8db134cdf296d734100552036edb9fc380 (patch)
tree5c7948f8b70c5ef246a0a8813d66ecc94bd76f3b /classes/rssutils.php
parentfffccbd2fc8f33a9ab505fc03e7bd7b01e01c68e (diff)
mark feed as having an error if update task fails (and no last error is already stored for this feed)
Diffstat (limited to 'classes/rssutils.php')
-rwxr-xr-xclasses/rssutils.php15
1 files changed, 11 insertions, 4 deletions
diff --git a/classes/rssutils.php b/classes/rssutils.php
index 3954f76dc..28260739b 100755
--- a/classes/rssutils.php
+++ b/classes/rssutils.php
@@ -187,11 +187,11 @@ class RSSUtils {
// -1 can be caused by a SIGCHLD handler which daemon master process installs (not every setup, apparently)
if ($exit_code != 0 && $exit_code != -1) {
- $esth = $pdo->prepare("SELECT last_error FROM ttrss_feeds WHERE id = ?");
- $esth->execute([$tline["id"]]);
+ $festh = $pdo->prepare("SELECT last_error FROM ttrss_feeds WHERE id = ?");
+ $festh->execute([$tline["id"]]);
- if ($erow = $esth->fetch()) {
- $error_message = $erow["last_error"];
+ if ($ferow = $festh->fetch()) {
+ $error_message = $ferow["last_error"];
} else {
$error_message = "N/A";
}
@@ -201,6 +201,13 @@ class RSSUtils {
Logger::get()->log(E_USER_NOTICE,
sprintf("Update process for feed %d (%s, owner UID: %d) failed with exit code: %d (%s).",
$tline["id"], clean($tline["title"]), $tline["owner_uid"], $exit_code, clean($error_message)));
+
+ $combined_error_message = sprintf("Update process failed with exit code: %d (%s)",
+ $exit_code, clean($error_message));
+
+ # mark failed feed as having an update error (unless it is already marked)
+ $fusth = $pdo->prepare("UPDATE ttrss_feeds SET last_error = ? WHERE id = ? AND last_error = ''");
+ $fusth->execute([$combined_error_message, $tline["id"]]);
}
} else {