From 87c65bee48c46d97f9a82d650a3af4bc28acda4c Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Sun, 4 Sep 2005 10:05:22 +0000
Subject: [PATCH] detecter le bug du a la date du serveur qui bouge violemment
 (mais ne rien faire, le signaler simplement dans spip.log pour debug) - on a
 eu le cas avec Ouvaton et OVH dernierement, cf. #15

---
 ecrire/inc_cron.php3 | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/ecrire/inc_cron.php3 b/ecrire/inc_cron.php3
index a8f45d5a54..510de041f3 100644
--- a/ecrire/inc_cron.php3
+++ b/ecrire/inc_cron.php3
@@ -68,15 +68,25 @@ function spip_cron($taches = array()) {
 
 	// Quelle est la tache la plus urgente ?
 	$tache = '';
+	$tmin = $t;
 	clearstatcache();
 	foreach ($taches as $nom => $periode) {
 		$lock = _DIR_SESSIONS . $nom . '.lock';
 		$date_lock = @filemtime($lock);
-		if ($date_lock + $periode < $t) {
-			$t = $date_lock + $periode;
+
+		if ($date_lock + $periode < $tmin) {
+			$tmin = $date_lock + $periode;
 			$tache = $nom;
 			$last = $date_lock;
 		}
+		// debug : si la date du fichier est superieure a l'heure actuelle,
+		// c'est que le serveur a (ou a eu) des problemes de reglage horaire
+		// qui peuvent mettre en peril les taches cron : signaler dans le log
+		// (On laisse toutefois flotter sur une heure, pas la peine de s'exciter
+		// pour si peu)
+		else if ($date_lock > $t + 3600)
+			spip_log("Erreur de date du fichier $lock : $date_lock > $t !");
+
 	}
 	if (!$tache) return;
 
-- 
GitLab