Wednesday, April 02, 2008

rsyslog work log

OK, I am guilty of lazyness... I worked quite a bit on RELP and by doing so, I always thought "it's not much for the rsyslog work log, so let's do it tomorrow" ;) Well, tomorrow is now two weeks old and I think it is a good plan to come back to my habit of posting work logs. This time, of course, a bit more than usual.

Please note that the initial version with relp support, 3.15.0 has been released. I am currently evaluating the next focus feature, which probably is native TLS support. If so, I'll probably again need to put some work into a utility library, which will not directly be rsyslog related. But I hope I'll still continue to post something useful here. In the mean time, please be reminded that any implementation reports are still most welcome.

So here we go, the past ca. two-weeks worth of rsyslog work log:
- added flow control options to other input sources
- worked on librelp
- bugfix: some minor memory leaks
- bugfix: some slightly invalid memory accesses
- made librelp and rsyslog relp system send the first messages
to the remote peer (but it then discards them ;))
- made debug module free some memory on exit to make memory debugger
- added capability to receive RELP messages and forward them to the
main message queue to imrelp (not yet fully finished)
- cleanup of omrelp
- prepared omrelp for real "relp action"
- changed queue's discard severities default value to 8 (do not discard)
to prevent unintentional message loss
- removed a now-longer needed callback from the output module
interface. Results in reducing code complexity.
- Greatly enhanced rsyslogd's file write performance by disabling
file syncing capability of output modules by default. This
feature is usually not required, not useful and an extreme performance
hit (both to rsyslogd as well as the system at large). Unfortunately,
most users enable it by default, because it was most intuitive to enable
it in plain old sysklogd syslog.conf format. There is now a new config
setting which must be enabled in order to support syncing. By default it
is off. So even if the old-format config lines request syncing, it is
not done unless explicitely enabled. I am sure this is a very useful
change and not a risk at all. I need to think if I undo it under
compatibility mode, but currently this does not happen (I fear a lot of
lazy users will run rsyslogd in compatibility mode, again bringing up
this performance problem...).
- added $ActionfileEnableSync config directive
- bugfix: internally generated messages had "FROMHOST" property not set
- bugfix: continue parsing if tag is oversize (discard oversize part) - thanks
to for the patch
- added $HHOUR and $QHOUR system properties - can be used for half- and
quarter-hour logfile rotation
- bugfix: QHOUR and HHOUR properties were wrongly calculated
- made relp modules use new relpengine-provided feature selection functions
- bugfix: fixed memory leaks in stream class and imfile
- bugfix: $ModDir did invalid bounds checking, potential overlow in
dbgprintf() - thanks to varmojfekoj for the patch
- changed default for "last message repeated n times", which is now
off by default
- implemented backward compatibility commandline option parsing
- bugfix: -t and -g legacy options max number of sessions had a wrong
and much too high value
- automatically generated compatibility config lines are now also
logged so that a user can diagnose problems with them
- added compatibility mode for -a, -o and -p options
- MILESTONE: compatibility mode processing finished
- updated man pages
- changed default file output format to include high-precision timestamps
- added a buid-in template for previous syslogd file format
- added new $ActionFileDefaultTemplate directive
- added support for high-precision timestamps when receiving legacy
syslog messages
- added new $ActionForwardDefaultTemplate directive
- added new $ActionGSSForwardDefaultTemplate directive
- added build-in templates
- fixed small memory leak in tcpclt.c
- bugfix: fixed small memory leak in template regular expressions
- bugfix: regular expressions inside property replacer did not work
- removed --enable-mudflap, added --enable-valgrind ./configure setting
- bugfix: tcp receiver could segfault due to uninitialized variable
- docfix: queue doc had a wrong directive name that prevented max worker
threads to be correctly set
- worked a bit on atomic memory operations to support problem-free
- added a --enable/disable-rsyslogd configure option so that
source-based packaging systems can build plugins without the need
to compile rsyslogd
- released 3.13.0-dev0
- begun 3.17.0 [focus: TLS for plain tcp syslog]
- bugfix: rsyslogd was no longer build by default; man pages are
only installed if corresponding option is selected. Thanks to
Michael Biebl for pointing these problems out.

No comments:

Introducing new team member

Good news: we have some new folks working on the rsyslog project. In a small mini-series of two blog postings I'd like to introduce the...