at/at-3.1.16-handle_malformed_jobs.patch
Danilo Spinella cbc8544d9f Accepting request 956821 from home:dspinella:branches:Base:System
- Update to version 3.2.4:
  * Upstream SUSE patches
- Update to version 3.2.3:
  * Fix two typos on documentation
  * Upstream SUSE patches
  * Various improvements to the code and the build system
- Refresh patches:
  * at-3.1.16-handle_malformed_jobs.patch
  * at-3.2.2.patch
  * at-backport-old-privs.patch
  * harden_atd.service.patch
- Drop upstreamed patches:
  * at-3.1.13-leak-fix.patch
  * at-3.1.13-massive_batch.patch
  * at-3.1.14-joblist.patch
  * at-3.1.14-usePOSIXtimers.patch
  * at-3.1.8-jobdir-mtime.patch
  * at-atq-timeformat.patch
  * at-secure_getenv.patch

OBS-URL: https://build.opensuse.org/request/show/956821
OBS-URL: https://build.opensuse.org/package/show/Base:System/at?expand=0&rev=121
2022-02-22 16:51:45 +00:00

32 lines
890 B
Diff

Index: at-3.1.13/atd.c
===================================================================
--- at-3.1.13.orig/atd.c
+++ at-3.1.13/atd.c
@@ -103,6 +103,7 @@ int selinux_enabled=0;
#define BATCH_INTERVAL_DEFAULT 60
#define CHECK_INTERVAL 3600
+#define RETRY_INTERVAL CHECK_INTERVAL
/* Global variables */
@@ -845,12 +846,17 @@ run_loop()
/* Something went wrong the last time this was executed.
* Let's remove the lockfile and reschedule.
+ *
+ * To prevent pointless CPU heating with permanent errors,
+ * next execution is scheduled with RETRY_INTERVAL inserted.
*/
strncpy(lock_name, dirent->d_name, sizeof(lock_name)-1);
lock_name[sizeof(lock_name)-1] = 0;
lock_name[0] = '=';
unlink(lock_name);
- next_job = now;
+ if (next_job > now + RETRY_INTERVAL) {
+ next_job = now + RETRY_INTERVAL;
+ }
nothing_to_do = 0;
}
continue;