Control: fixed -1 3.11.0-0.1 Control: tags -1 + jessie Hello LACROIX Jean Marc,
[Sorry, but resending with fixed CC address this time.] Thanks for your bug report. I've looked into the behaviour on sid/unstable (which has the same version as stretch/testing, but not as jessie/stable). I'm not able to reproduce your problem. Would be great if you have a chance to see if you can reproduce the problem under stretch/testing. Some notes about observations inline below. On Thu, Mar 16, 2017 at 08:29:11AM +0100, LACROIX Jean Marc wrote: > Package: logrotate > Version: 3.8.7-1+b1 > Severity: grave > > Dear Maintainer, > > I run logrotate on Jessie 8.7 on amd64 platform. > > My initials conditions are : > > root@srv-syslog-2:~# df -h > Filesystem Size Used Avail Use% > Mounted on > /dev/mapper/vg_data-srv_syslog_2_lv_rootfs 380M 52M 309M 15% / > /dev/mapper/vg_data-srv_syslog_2_lv_usr 477M 358M 95M 80% /usr > /dev/mapper/vg_data-srv_syslog_2_lv_var 283M 158M 111M 59% /var > /dev/mapper/vg_data-srv_syslog_2_lv_local_home 47M 1.7M 43M 4% > /local_home > /dev/mapper/vg_data-srv_syslog_2_lv_tmp 93M 1.7M 87M 2% /tmp > /dev/mapper/vg_data-srv_syslog_2_lv_var_log 11G 5.4G 4.2G 57% > /var/log > tmpfs 596M 68K 596M 1% /run > tmpfs 5.0M 0 5.0M 0% > /run/lock > tmpfs 3.2G 0 3.2G 0% > /run/shm > > my config file /etc/logrotate.d/monit > > /var/log/monit.log > { > rotate 4 > weekly > minsize 1M > size 10000000 (The above (size) line is not part of the shipped logrotate settings.) > missingok > create 640 root adm > notifempty > compress > delaycompress > postrotate > invoke-rc.d monit reload > /dev/null > endscript > daily Hmm, using both "daily" and "weekly" at the same time can't be a sane configuration?! (This daily line is also a deviation from the shipped monit logrotate configuration.) > } > > The current configuration in /var/log/monit* > > root@srv-syslog-2:~# ls -altrh /var/log/monit.log* > -rw-r----- 1 root adm 209K Feb 24 14:17 /var/log/monit.log.2.gz > -rw-r----- 1 root adm 6.2M Feb 26 00:17 /var/log/monit.log.1 > -rw-r--r-- 1 root root 168M Mar 16 07:22 /var/log/monit.log > > root@srv-syslog-2:~# /usr/sbin/logrotate -d -v -f /etc/logrotate.d/monit > reading config file /etc/logrotate.d/monit > > Handling 1 logs > > rotating pattern: /var/log/monit.log > forced from command line (4 rotations) > empty log files are not rotated, only log files >= 1048576 bytes are > rotated, old logs are removed > considering log /var/log/monit.log > log needs rotating > rotating log /var/log/monit.log, log->rotateCount is 4 > dateext suffix '-20170316' > glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' > compressing log with: /bin/gzip > renaming /var/log/monit.log.4.gz to /var/log/monit.log.5.gz (rotatecount 4, > logstart 1, i 4), > renaming /var/log/monit.log.3.gz to /var/log/monit.log.4.gz (rotatecount 4, > logstart 1, i 3), > renaming /var/log/monit.log.2.gz to /var/log/monit.log.3.gz (rotatecount 4, > logstart 1, i 2), > renaming /var/log/monit.log.1.gz to /var/log/monit.log.2.gz (rotatecount 4, > logstart 1, i 1), > renaming /var/log/monit.log.0.gz to /var/log/mognit.log.1.gz (rotatecount 4, > logstart 1, i 0), Even after adding your monit logrotate configuration deviations I get this here: log /var/log/monit.log.5.gz doesn't exist -- won't try to dispose of it > renaming /var/log/monit.log to /var/log/monit.log.1 > creating new /var/log/monit.log mode = 0640 uid = 0 gid = 4 > running postrotate script > running script with arg /var/log/monit.log: " > invoke-rc.d monit reload > /dev/null > " > removing old log /var/log/monit.log.5.gz > error: error opening /var/log/monit.log.5.gz: No such file or directory > > > ...and after run, of course, no change > > root@srv-syslog-2:~# ls -altrh /var/log/monit.log* > -rw-r----- 1 root adm 209K Feb 24 14:17 /var/log/monit.log.2.gz > -rw-r----- 1 root adm 6.2M Feb 26 00:17 /var/log/monit.log.1 > -rw-r--r-- 1 root root 168M Mar 16 07:23 /var/log/monit.log > > > > Many thanks in advance for your help The missing output line and comparing the code from the Jessie version: /* if the last rotation doesn't exist, that's okay */ if (!debug && rotNames->disposeName && access(rotNames->disposeName, F_OK)) { message(MESS_DEBUG, "log %s doesn't exist -- won't try to " "dispose of it\n", rotNames->disposeName); free(rotNames->disposeName); rotNames->disposeName = NULL; } .. and the stretch version: /* if the last rotation doesn't exist, that's okay */ if (rotNames->disposeName && access(rotNames->disposeName, F_OK)) { message(MESS_DEBUG, "log %s doesn't exist -- won't try to dispose of it\n", rotNames->disposeName); free(rotNames->disposeName); rotNames->disposeName = NULL; } Please note that the !debug condition has been dropped, which seems correct to me. I thus very much suspect this is an already fixed bug. Regards, Andreas Henriksson