Hello community,

here is the log from the commit of package at for openSUSE:Factory
checked in at Mon Apr 11 11:27:57 CEST 2011.



--------
--- at/at.changes       2011-03-01 16:49:57.000000000 +0100
+++ /mounts/work_src_done/STABLE/at/at.changes  2011-04-07 16:40:54.000000000 
+0200
@@ -1,0 +2,5 @@
+Tue Apr  5 15:36:24 UTC 2011 - [email protected]
+
+- fixed atd-atrm race condition (bnc#679857)
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


New:
----
  at-3.1.8-atrm-race.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ at.spec ++++++
--- /var/tmp/diff_new_pack.P5C9zU/_old  2011-04-11 11:12:46.000000000 +0200
+++ /var/tmp/diff_new_pack.P5C9zU/_new  2011-04-11 11:12:46.000000000 +0200
@@ -26,7 +26,7 @@
 Group:          System/Daemons
 AutoReqProv:    on
 Version:        3.1.8
-Release:        1096
+Release:        1097
 Summary:        A Job Manager
 Source:         at_3.1.8-11.tar.gz
 Source1:        atd.init
@@ -56,6 +56,8 @@
 Patch16:        at-3.1.8-denylist.patch
 #PATCH_FIX-OPENSUSE plan jobs with past time to tomorrow (bnc#672586)
 Patch17:        %{name}-%{version}-tomorrow.patch
+#PATCH_FIX-OPENSUSE race condition of atrm against job execution (bnc#679857)
+Patch18:        %{name}-%{version}-atrm-race.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 PreReq:         %{_sbindir}/useradd %{_sbindir}/groupadd %fillup_prereq 
%insserv_prereq
 Recommends:     smtp_daemon
@@ -92,6 +94,7 @@
 %patch15
 %patch16
 %patch17 -p1
+%patch18
 
 %build
 %{?suse_update_config:%{suse_update_config -f}}

++++++ at-3.1.8-atrm-race.patch ++++++
Copyright (c) 2011 Ingo Schwarze <[email protected]>

This patch is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

--- atd.c       2011-02-25 12:40:46.000000000 +0100
+++ atd.c.new   2011-02-25 14:59:44.000000000 +0100
@@ -291,16 +291,16 @@ run_file(const char *filename, uid_t uid
     newname[0] = '=';
 
     /* We try to make a hard link to lock the file.  If we fail, then
-     * somebody else has already locked it (a second atd?); log the
+     * somebody else has already locked or deleted it; log the
      * fact and return.
      */
     if (link(filename, newname) == -1) {
-       if (errno == EEXIST) {
-           syslog(LOG_WARNING, "trying to execute job %.100s twice",filename);
-           return;
-       } else {
-           perr("Can't link execution file");
-       }
+       syslog(LOG_WARNING,
+           (errno == EEXIST ? "trying to execute job %.100s twice"
+                            : "Can't link execution file %.100s: %m"),
+           filename);
+       free(newname);
+       return;
     }
     /* If something goes wrong between here and the unlink() call,
      * the job gets restarted as soon as the "=" entry is cleared

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to