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]
