Blame at-3.1.20-aborted-jobs.patch
|
Tomas Mraz |
5dfacd |
diff -up at-3.1.20/atd.c.aborted at-3.1.20/atd.c
|
|
Tomas Mraz |
5dfacd |
--- at-3.1.20/atd.c.aborted 2017-09-14 15:31:47.971486148 +0200
|
|
Tomas Mraz |
5dfacd |
+++ at-3.1.20/atd.c 2017-09-14 15:43:53.506567281 +0200
|
|
Tomas Mraz |
5dfacd |
@@ -731,12 +731,17 @@ run_loop()
|
|
Marcela Mašláňová |
657001 |
/* Is the file already locked?
|
|
Marcela Mašláňová |
657001 |
*/
|
|
Marcela Mašláňová |
657001 |
if (buf.st_nlink > 1) {
|
|
Tomas Mraz |
5dfacd |
+ if (run_time < buf.st_mtime)
|
|
Tomas Mraz |
5dfacd |
+ run_time = buf.st_mtime;
|
|
Tomas Mraz |
5dfacd |
if (run_time + CHECK_INTERVAL <= now) {
|
|
Marcela Mašláňová |
657001 |
-
|
|
Marcela Mašláňová |
657001 |
/* Something went wrong the last time this was executed.
|
|
Marcela Mašláňová |
657001 |
* Let's remove the lockfile and reschedule.
|
|
Marcela Mašláňová |
657001 |
+ * We also change the timestamp to avoid rerunning the job more
|
|
Marcela Mašláňová |
657001 |
+ * than once every CHECK_INTERVAL.
|
|
Marcela Mašláňová |
657001 |
*/
|
|
Marcela Mašláňová |
657001 |
strncpy(lock_name, dirent->d_name, sizeof(lock_name));
|
|
Marcela Mašláňová |
657001 |
+ if (utime(lock_name, 0) < 0)
|
|
Marcela Mašláňová |
657001 |
+ syslog(LOG_ERR, "utime couldn't be set for lock file %s\n", lock_name);
|
|
Tomas Mraz |
5dfacd |
lock_name[sizeof(lock_name)-1] = '\0';
|
|
Tomas Mraz |
5dfacd |
lock_name[0] = '=';
|
|
Marcela Mašláňová |
657001 |
unlink(lock_name);
|