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

Reply via email to