[rsyslog] how to best rotate files

david at lang.hm david at lang.hm
Mon Sep 15 11:07:22 CEST 2008


On Mon, 15 Sep 2008, Rainer Gerhards wrote:

> On Mon, 2008-09-15 at 01:31 -0700, david at lang.hm wrote:
>> On Mon, 15 Sep 2008, Rainer Gerhards wrote:
>
>> one other item that occured to me, should I even be doing the kill -HUP?
>> or does rsyslog open the file for writing each time (so that I just have
>> to mv the file away and it will create a new one)?
>
> no, you need the HUP. Otherwise the file is kept open (so this is no
> easy way to improve performance ;))

here is a run with the debug and valgrind options

==11835== Memcheck, a memory error detector.

==11835== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.

==11835== Using LibVEX rev 1658, a library for dynamic binary translation.

==11835== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.

==11835== Using valgrind-3.2.1-Debian, a dynamic binary instrumentation 
framework.

==11835== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.

==11835== For more details, rerun with: -v

==11835==

==11835== My PID = 11835, parent PID = 11702.  Prog and args are:

==11835==    /usr/local/sbin/rsyslogd

==11835==

==11835== Conditional jump or move depends on uninitialised value(s)

==11835==    at 0x40091D5: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052622: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x4D4B114: (within /lib/libdl-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x4D4B649: (within /lib/libdl-2.3.6.so)

==11835==    by 0x4D4B0D1: dlopen (in /lib/libdl-2.3.6.so)

==11835==    by 0x428F2E: (within /usr/local/sbin/rsyslogd)

==11835==    by 0x41E15E: (within /usr/local/sbin/rsyslogd)

==11835==    by 0x423414: confClassInit (in /usr/local/sbin/rsyslogd)

==11835==    by 0x40C89C: realMain (in /usr/local/sbin/rsyslogd)

==11835==

==11835== Conditional jump or move depends on uninitialised value(s)

==11835==    at 0x40091DE: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052622: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x4D4B114: (within /lib/libdl-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x4D4B649: (within /lib/libdl-2.3.6.so)

==11835==    by 0x4D4B0D1: dlopen (in /lib/libdl-2.3.6.so)

==11835==    by 0x428F2E: (within /usr/local/sbin/rsyslogd)

==11835==    by 0x41E15E: (within /usr/local/sbin/rsyslogd)

==11835==    by 0x423414: confClassInit (in /usr/local/sbin/rsyslogd)

==11835==    by 0x40C89C: realMain (in /usr/local/sbin/rsyslogd)

==11835==

==11835== Conditional jump or move depends on uninitialised value(s)

==11835==    at 0x4010AEE: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006CB6: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x5054467: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x50544B1: __libc_dlopen_mode (in /lib/libc-2.3.6.so)

==11835==    by 0x502F426: __nss_lookup_function (in /lib/libc-2.3.6.so)

==11835==    by 0x502F4D4: (within /lib/libc-2.3.6.so)

==11835==    by 0x5034272: gethostbyname_r (in /lib/libc-2.3.6.so)

==11835==    by 0x5033A72: gethostbyname (in /lib/libc-2.3.6.so)

==11835==

==11835== Conditional jump or move depends on uninitialised value(s)

==11835==    at 0x4010AF9: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006CB6: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x5054467: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x50544B1: __libc_dlopen_mode (in /lib/libc-2.3.6.so)

==11835==    by 0x502F426: __nss_lookup_function (in /lib/libc-2.3.6.so)

==11835==    by 0x502F4D4: (within /lib/libc-2.3.6.so)

==11835==    by 0x5034272: gethostbyname_r (in /lib/libc-2.3.6.so)

==11835==    by 0x5033A72: gethostbyname (in /lib/libc-2.3.6.so)
==11835==

==11835== Conditional jump or move depends on uninitialised value(s)

==11835==    at 0x4010B04: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006CB6: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x5054467: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x50544B1: __libc_dlopen_mode (in /lib/libc-2.3.6.so)

==11835==    by 0x502F426: __nss_lookup_function (in /lib/libc-2.3.6.so)

==11835==    by 0x502F4D4: (within /lib/libc-2.3.6.so)

==11835==    by 0x5034272: gethostbyname_r (in /lib/libc-2.3.6.so)

==11835==    by 0x5033A72: gethostbyname (in /lib/libc-2.3.6.so)

==11835==

==11835== Conditional jump or move depends on uninitialised value(s)

==11835==    at 0x4010C61: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006E47: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x5054467: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x50544B1: __libc_dlopen_mode (in /lib/libc-2.3.6.so)

==11835==    by 0x502F426: __nss_lookup_function (in /lib/libc-2.3.6.so)

==11835==    by 0x502F4D4: (within /lib/libc-2.3.6.so)

==11835==    by 0x5034272: gethostbyname_r (in /lib/libc-2.3.6.so)

==11835==    by 0x5033A72: gethostbyname (in /lib/libc-2.3.6.so)

==11835==

==11835== Invalid read of size 8

==11835==    at 0x4010C54: (within /lib/ld-2.3.6.so)

==11835==    by 0x4008D38: (within /lib/ld-2.3.6.so)

==11835==    by 0x4004CF2: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006D6C: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x5054467: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x50544B1: __libc_dlopen_mode (in /lib/libc-2.3.6.so)

==11835==    by 0x502F426: __nss_lookup_function (in /lib/libc-2.3.6.so)

==11835==    by 0x502F4D4: (within /lib/libc-2.3.6.so)

==11835==  Address 0x5198EB0 is 16 bytes inside a block of size 23 alloc'd

==11835==    at 0x4A1B858: malloc (vg_replace_malloc.c:149)

==11835==    by 0x4007113: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x5054467: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x50544B1: __libc_dlopen_mode (in /lib/libc-2.3.6.so)

==11835==    by 0x502F426: __nss_lookup_function (in /lib/libc-2.3.6.so)

==11835==    by 0x502F4D4: (within /lib/libc-2.3.6.so)

==11835==    by 0x5034272: gethostbyname_r (in /lib/libc-2.3.6.so)

==11835==    by 0x5033A72: gethostbyname (in /lib/libc-2.3.6.so)

==11835==

==11835== Conditional jump or move depends on uninitialised value(s)

==11835==    at 0x4010A70: (within /lib/ld-2.3.6.so)

==11835==    by 0x400610A: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006CD3: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x4D4B114: (within /lib/libdl-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)
==11835==    by 0x4D4B649: (within /lib/libdl-2.3.6.so)

==11835==    by 0x4D4B0D1: dlopen (in /lib/libdl-2.3.6.so)

==11835==    by 0x428F2E: (within /usr/local/sbin/rsyslogd)

==11835==    by 0x41E15E: (within /usr/local/sbin/rsyslogd)

==11835==

==11835== Conditional jump or move depends on uninitialised value(s)

==11835==    at 0x4010A7F: (within /lib/ld-2.3.6.so)

==11835==    by 0x400610A: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006CD3: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x4D4B114: (within /lib/libdl-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x4D4B649: (within /lib/libdl-2.3.6.so)

==11835==    by 0x4D4B0D1: dlopen (in /lib/libdl-2.3.6.so)

==11835==    by 0x428F2E: (within /usr/local/sbin/rsyslogd)

==11835==    by 0x41E15E: (within /usr/local/sbin/rsyslogd)

==11835==

==11835== Conditional jump or move depends on uninitialised value(s)

==11835==    at 0x4010A8E: (within /lib/ld-2.3.6.so)

==11835==    by 0x400610A: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006CD3: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x4D4B114: (within /lib/libdl-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x4D4B649: (within /lib/libdl-2.3.6.so)

==11835==    by 0x4D4B0D1: dlopen (in /lib/libdl-2.3.6.so)

==11835==    by 0x428F2E: (within /usr/local/sbin/rsyslogd)

==11835==    by 0x41E15E: (within /usr/local/sbin/rsyslogd)

==11835==

==11835== Conditional jump or move depends on uninitialised value(s)

==11835==    at 0x4010C2D: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006117: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006CD3: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x4D4B114: (within /lib/libdl-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x4D4B649: (within /lib/libdl-2.3.6.so)

==11835==    by 0x4D4B0D1: dlopen (in /lib/libdl-2.3.6.so)

==11835==    by 0x428F2E: (within /usr/local/sbin/rsyslogd)

==11835==    by 0x41E15E: (within /usr/local/sbin/rsyslogd)

==11835==

==11835== Conditional jump or move depends on uninitialised value(s)

==11835==    at 0x4010C2D: (within /lib/ld-2.3.6.so)

==11835==    by 0x4008B91: (within /lib/ld-2.3.6.so)

==11835==    by 0x4004CF2: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006D6C: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x4D4B114: (within /lib/libdl-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x4D4B649: (within /lib/libdl-2.3.6.so)

==11835==    by 0x4D4B0D1: dlopen (in /lib/libdl-2.3.6.so)

==11835==    by 0x428F2E: (within /usr/local/sbin/rsyslogd)

==11835==

==11835== Invalid read of size 8

==11835==    at 0x4010C20: (within /lib/ld-2.3.6.so)

==11835==    by 0x4008D38: (within /lib/ld-2.3.6.so)

==11835==    by 0x4004CF2: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006D6C: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x4D4B114: (within /lib/libdl-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x4D4B649: (within /lib/libdl-2.3.6.so)

==11835==    by 0x4D4B0D1: dlopen (in /lib/libdl-2.3.6.so)

==11835==    by 0x428F2E: (within /usr/local/sbin/rsyslogd)

==11835==  Address 0x519B1C0 is 32 bytes inside a block of size 35 alloc'd

==11835==    at 0x4A1B858: malloc (vg_replace_malloc.c:149)

==11835==    by 0x4006123: (within /lib/ld-2.3.6.so)

==11835==    by 0x4006CD3: (within /lib/ld-2.3.6.so)

==11835==    by 0x5052230: (within /lib/libc-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11835==    by 0x4D4B114: (within /lib/libdl-2.3.6.so)

==11835==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11835==    by 0x4D4B649: (within /lib/libdl-2.3.6.so)

==11835==    by 0x4D4B0D1: dlopen (in /lib/libdl-2.3.6.so)

==11835==    by 0x428F2E: (within /usr/local/sbin/rsyslogd)

==11835==    by 0x41E15E: (within /usr/local/sbin/rsyslogd)

==11836== Warning: noted but unhandled ioctl 0x5422 with no size/direction 
hints

==11836==    This could cause spurious value errors to appear.

==11836==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a 
proper wrapper.

==11836==

==11836== Conditional jump or move depends on uninitialised value(s)

==11836==    at 0x4009442: (within /lib/ld-2.3.6.so)

==11836==    by 0x5052622: (within /lib/libc-2.3.6.so)

==11836==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11836==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11836==    by 0x4D4B114: (within /lib/libdl-2.3.6.so)

==11836==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11836==    by 0x4D4B649: (within /lib/libdl-2.3.6.so)

==11836==    by 0x4D4B0D1: dlopen (in /lib/libdl-2.3.6.so)

==11836==    by 0x428F2E: (within /usr/local/sbin/rsyslogd)

==11836==    by 0x4248A8: doModLoad (in /usr/local/sbin/rsyslogd)

==11836==    by 0x429771: processCfSysLineCommand (in 
/usr/local/sbin/rsyslogd)

==11836==    by 0x4236AD: cfsysline (in /usr/local/sbin/rsyslogd)

==11836==

==11836== Conditional jump or move depends on uninitialised value(s)

==11836==    at 0x4009339: (within /lib/ld-2.3.6.so)

==11836==    by 0x5052622: (within /lib/libc-2.3.6.so)

==11836==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11836==    by 0x5051CC7: _dl_open (in /lib/libc-2.3.6.so)

==11836==    by 0x4D4B114: (within /lib/libdl-2.3.6.so)

==11836==    by 0x400B7D0: (within /lib/ld-2.3.6.so)

==11836==    by 0x4D4B649: (within /lib/libdl-2.3.6.so)

==11836==    by 0x4D4B0D1: dlopen (in /lib/libdl-2.3.6.so)

==11836==    by 0x428F2E: (within /usr/local/sbin/rsyslogd)

==11836==    by 0x4248A8: doModLoad (in /usr/local/sbin/rsyslogd)

==11836==    by 0x429771: processCfSysLineCommand (in 
/usr/local/sbin/rsyslogd)

==11836==    by 0x4236AD: cfsysline (in /usr/local/sbin/rsyslogd)

==11836==

==11836== Syscall param socketcall.sendto(msg) points to uninitialised 
byte(s)

==11836==    at 0x5020275: sendto (in /lib/libc-2.3.6.so)

==11836==    by 0x503E8C9: (within /lib/libc-2.3.6.so)

==11836==    by 0x500AF2C: getaddrinfo (in /lib/libc-2.3.6.so)

==11836==    by 0x415F0D: parsAddrWithBits (in /usr/local/sbin/rsyslogd)

==11836==    by 0x5295D97: addAllowedSenderLine (in 
/usr/local/lib/rsyslog/lmnet.so)

==11836==    by 0x42482D: doNameLine (in /usr/local/sbin/rsyslogd)

==11836==    by 0x429771: processCfSysLineCommand (in 
/usr/local/sbin/rsyslogd)

==11836==    by 0x4236AD: cfsysline (in /usr/local/sbin/rsyslogd)

==11836==    by 0x42384C: (within /usr/local/sbin/rsyslogd)

==11836==    by 0x424655: (within /usr/local/sbin/rsyslogd)

==11836==    by 0x40B860: (within /usr/local/sbin/rsyslogd)

==11836==    by 0x40D3D1: realMain (in /usr/local/sbin/rsyslogd)
==11836==  Address 0x7FEFFB371 is on thread 1's stack

==11835==

==11835== ERROR SUMMARY: 15 errors from 13 contexts (suppressed: 9 from 1)

==11835== malloc/free: in use at exit: 25,332 bytes in 459 blocks.

==11835== malloc/free: 606 allocs, 147 frees, 36,928 bytes allocated.

==11835== For counts of detected errors, rerun with: -v

==11835== searching for pointers to 459 not-freed blocks.

==11835== checked 175,080 bytes.

==11835==

==11835== LEAK SUMMARY:

==11835==    definitely lost: 0 bytes in 0 blocks.

==11835==      possibly lost: 0 bytes in 0 blocks.

==11835==    still reachable: 25,332 bytes in 459 blocks.

==11835==         suppressed: 0 bytes in 0 blocks.

==11835== Reachable blocks (those to which a pointer was found) are not 
shown.

==11835== To see them, rerun with: --show-reachable=yes

==11836==

==11836== ERROR SUMMARY: 54 errors from 16 contexts (suppressed: 10 from 
1)

==11836== malloc/free: in use at exit: 20,815 bytes in 114 blocks.

==11836== malloc/free: 1,738 allocs, 1,624 frees, 255,036 bytes allocated.

==11836== For counts of detected errors, rerun with: -v

==11836== searching for pointers to 114 not-freed blocks.

==11836== checked 33,711,344 bytes.

==11836==

==11836== LEAK SUMMARY:

==11836==    definitely lost: 2,020 bytes in 35 blocks.

==11836==      possibly lost: 544 bytes in 4 blocks.

==11836==    still reachable: 18,251 bytes in 75 blocks.

==11836==         suppressed: 0 bytes in 0 blocks.

==11836== Use --leak-check=full to see details of leaked memory.





More information about the rsyslog mailing list