Hi Paul,

in Ubuntu we consider this a release critical bug, because a single
glob failure in any configuration file can break the entire logrotate
system. Thus we applied a quick hack (thanks to Jean-Baptiste
Lallement) which works around the problem. syslog will stil get the
glob errors, but at least the following logrotate.d files will be
processed. This kind of breaks "nomissingok", but I don't think that
it was ever intended to break the *entire* log rotation, it should
just stop the current config file.

I think it's appropriate for Lenny as well, but that's your call, of
course.

Thank you,

Martin

-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)
diff -u logrotate-3.7.1/debian/changelog logrotate-3.7.1/debian/changelog
--- logrotate-3.7.1/debian/changelog
+++ logrotate-3.7.1/debian/changelog
@@ -1,3 +1,14 @@
+logrotate (3.7.1-3ubuntu2) intrepid; urgency=low
+
+  * Add debian/patches/glob-failure.patch: Prevent logrotate from failing
+    completely if one glob in any included file fails. This more or less
+    behaves like an implied # "missingok" now, which isn't correctly parsed in
+    the current version. Fixing it properly is a very intrusive change.
+    (LP: #256891) Thanks to Jean-Baptiste Lallement for analyzing the problem
+    and proposing the patch!
+
+ -- Martin Pitt <[EMAIL PROTECTED]>  Wed, 08 Oct 2008 13:59:23 +0200
+
 logrotate (3.7.1-3ubuntu1) intrepid; urgency=low
 
   * Drop mailx to Suggests for Ubuntu; it's only used on request, and we
diff -u logrotate-3.7.1/debian/patches/series 
logrotate-3.7.1/debian/patches/series
--- logrotate-3.7.1/debian/patches/series
+++ logrotate-3.7.1/debian/patches/series
@@ -24,0 +25 @@
+glob-failure.patch
only in patch2:
unchanged:
--- logrotate-3.7.1.orig/debian/patches/glob-failure.patch
+++ logrotate-3.7.1/debian/patches/glob-failure.patch
@@ -0,0 +1,19 @@
+# Prevent logrotate from failing completely if one glob in any
+# included file fails. This more or less behaves like an implied
+# "missingok" now, which isn't correctly parsed in the current
+# version.
+# Ubuntu: https://bugs.launchpad.net/bugs/256891
+# Debian: http://bugs.debian.org/277652
+Index: logrotate-3.7.1/config.c
+===================================================================
+--- logrotate-3.7.1.orig/config.c      2008-10-08 13:56:36.000000000 +0200
++++ logrotate-3.7.1/config.c   2008-10-08 13:56:45.000000000 +0200
+@@ -968,7 +968,7 @@
+ 
+                   message(MESS_ERROR, "%s:%d glob failed for %s\n",
+                           configFile, lineNum, argv[argNum]);
+-                  return 1;
++                  continue;
+               }
+ 
+               newlog->files = realloc(newlog->files, sizeof(*newlog->files) * 

Attachment: signature.asc
Description: Digital signature

Reply via email to