[Bug 810736] Re: logrotate script needs to notify all samba processes when logs are rotated

Simon Déziel 810736 at bugs.launchpad.net
Thu Jul 14 20:54:58 UTC 2011


Steps to observe the problem :

# Only one log file exists
ls -1 /var/log/samba
cores
log.smbd

# Force the rotation
logrotate -f /etc/logrotate.d/samba

# The log is rotated but the old log file is missing (was rm'ed and does not show in ls)
ls -1 /var/log/samba
cores
log.smbd.1.gz

# with lsof we see the renamed file still opened and deleted
lsof | grep log.smbd
smbd 6593 root 2w REG 251,1 524288000 783512 /var/log/samba/log.smbd.1 (deleted)
smbd 6593 root 27w REG 251,1 524288000 783512 /var/log/samba/log.smbd.1 (deleted)
smbd 6595 root 2w REG 251,1 343 783436 /var/log/samba/log.smbd.1 (deleted)
smbd 6595 root 8w REG 251,1 343 783436 /var/log/samba/log.smbd.1 (deleted)

# Instruct smbd to reopen the log file (as Natty's logrotate does)
kill -HUP `cat /var/run/samba/smbd.pid`

# Now the log.smbd finally appears
ls -1 /var/log/samba
cores
log.smbd
log.smbd.1.gz

# lsof still shows problems due to other children processes not knowing to release the log file
lsof | grep log.smbd
smbd 6593 root 2w REG 251,1 202 783521 /var/log/samba/log.smbd
smbd 6593 root 8w REG 251,1 202 783521 /var/log/samba/log.smbd
smbd 6595 root 2w REG 251,1 343 783436 /var/log/samba/log.smbd.1 (deleted)
smbd 6595 root 8w REG 251,1 343 783436 /var/log/samba/log.smbd.1 (deleted)

Using "smbcontrol all reload-config" in the logrotate configuration file
fixes the issue.

** Description changed:

  After the log rotation, logrotate needs to notify all samba processes to
  release their open file descriptors on the log files.
  
  The current logrotate configuration file does not do so and only notify the process that has it's PID stored /var/run/samba/.
  This is wrong as other child will keep logging to the "deleted" files and may use all the disk space. Those "deleted" files are not showing in ls output but they are still consuming space in the file system.
  
  I think the right solution to this bug would be to have logrotate to
  call "smbcontrol all reload-config". This solution was proposed by
  Andrew Bartlett, a Samba developer, in this email http://bugs.debian.org
- /cgi-bin/bugreport.cgi?bug=160076#25.
+ /cgi-bin/bugreport.cgi?bug=160076#25. The smbcontrol utility will notify
+ all related daemons (smbd, nmbd and winbindd) and their children to re-
+ open a new log file.
  
  I have confirmed that this problem affects Samba from Lucid to Natty at
  least.

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to samba in Ubuntu.
https://bugs.launchpad.net/bugs/810736

Title:
  logrotate script needs to notify all samba processes when logs are
  rotated

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/samba/+bug/810736/+subscriptions



More information about the Ubuntu-server-bugs mailing list