What happens when disk is full?

From: Rudolf Ladyzhenskii <rudolf@ceos.com.au>
Date: Fri Apr 07 2006 - 06:35:46 CEST

Hi, all

 

Firstly, let me describe the behaviour I am seeing.

Syslogd is instructed to write messages to a particular log file, let's say
/var/log/syslog

 

When partition /var/log gets full, syslog stops writing (obviously), but
writing is not resumed when disk space is available again.

 

Closer investigation showed that file descriptor is closed by syslogd. I
tried to pipe the output of syslogd into the FIFO and this is till going,
while output to file is ceased.

 

The only way to recover is to restart syslogd or send it HUP signal.

 

This situation will not normally occur, but I am running it on an embedded
system with limited "disk space" available and it is quite possible for it
to get full. System is a data logger and large log files are read
periodically and space is re-claimed.

 

So, is that a bug in syslogd? Is there a way to instruct syslogd to force
disk space checking and perform recovery?

At the moment I am thinking of writing a script that will check if syslogd
has file descriptor open and will SIGHUP it in case file descriptor is
closed. Script can run from cron. But I would prefer to get away without the
additional supervision.

Simply restarting the syslogd periodically is not a good idea, as it will
generate "noise" in log file associated with restarting and I do not want
it.

 

Any help/ideas are greatly appreciated.

Oh, yes, I am running syslogd 1.3.1 Looked at release notes for later
version and they do not mention the problem I see.

 

/*********************************************/

Rudolf Ladyzhenskii

Software Development Leader

CEOS

Unit 3, 17 Burgundy Street

Heidelberg, VIC 3084

Australia

ph. (03) 94584955

fax. (03) 94584966

Mob. 0414 635 468

www.ceos.com.au

 

/*********************************************/

 
Received on Fri, 7 Apr 2006 14:35:46 +1000

This archive was generated by hypermail 2.1.8 : Fri Apr 07 2006 - 06:34:00 CEST