From f4eb0770df0a5b43a14c37215dfa0ebee204abb0 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Fri, 20 Jul 2007 08:25:55 +0000 Subject: added the capability to continue trying to write log files when the file system is full. Functionality based on patch by Martin Schulze to sysklogd package. --- ChangeLog | 7 +++++-- syslogd.c | 7 +++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 74d6f43c..b66b9e0c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,5 @@ --------------------------------------------------------------------------- -Version 1.17.1 (RGer), 2007-07-?? +Version 1.17.1 (RGer), 2007-07-20 - fixed a bug that caused make install to install rsyslogd and rklogd under the wrong names - fixed bug that caused $AllowedSenders to handle IPv6 scopes incorrectly; @@ -8,11 +8,14 @@ Version 1.17.1 (RGer), 2007-07-?? - minor code cleanup - thanks to Peter Vrabec for the patch - fixed minimal memory leak on HUP (caused by templates) thanks to varmojfekoj for the patch -- fixed another memory leak on HUPin and on exiting rsyslogd +- fixed another memory leak on HUPing and on exiting rsyslogd again thanks to varmojfekoj for the patch - code cleanup (removed compiler warnings) - fixed portability bug in configure.ac - thanks to Bartosz Kuźma for patch - moved msg object into its own file set +- added the capability to continue trying to write log files when the + file system is full. Functionality based on patch by Martin Schulze + to sysklogd package. --------------------------------------------------------------------------- Version 1.17.0 (RGer), 2007-07-17 - added $RepeatedLineReduction config parameter diff --git a/syslogd.c b/syslogd.c index 7b23a3da..90700a41 100644 --- a/syslogd.c +++ b/syslogd.c @@ -5392,6 +5392,13 @@ again: if (f->f_type == F_PIPE && e == EAGAIN) return; + /* If the filesystem is filled up, just ignore + * it for now and continue writing when possible + * based on patch for sysklogd by Martin Schulze on 2007-05-24 + */ + if (f->f_type == F_FILE && e == ENOSPC) + return; + (void) close(f->f_file); /* * Check for EBADF on TTY's due to vhangup() -- cgit v1.2.3