ChangeLog for 4.2.0 (v4-stable)
Version 4.2.0 [v4-stable] (rgerhards), 2009-06-23
- bugfix: light and full delay watermarks had invalid values, badly affecting performance for delayable inputs
- bugfix: compile problems in im3195
- imported all patches from 3.22.1 as of today (see below):
- bugfix: invalid error message issued if $inlcudeConfig was on an empty set of files (e.g. *.conf, where none such files existed) thanks to Michael Biebl for reporting this bug
- bugfix: when run in foreground (but not in debug mode), a debug message (“DoDie called”) was emitted at shutdown. Removed. thanks to Michael Biebl for reporting this bug
- bugfix: some garbagge was emitted to stderr on shutdown. This garbage consisted of file names, which were written during startup (key point: not a pointer error) thanks to Michael Biebl for reporting this bug
- bugfix: startup and shutdown message were emitted to stdout
thanks to Michael Biebl for reporting this bug - bugfix: error messages were not emitted to stderr in forked mode (stderr and stdo are now kept open across forks)
- bugfix: internal messages were emitted to whatever file had fd2 when rsyslogd ran in forked mode (as usual!) Thanks to varmojfekoj for the patch
- small enhancement: config validation run now exits with code 1 if an error is detected. This change is considered important but small enough to apply it directly to the stable version. [But it is a border case, the change requires more code than I had hoped. Thus I have NOT tried to actually catch all cases, this is left for the current devel releases, if necessary]
- bugfix: light and full delay watermarks had invalid values, badly affecting performance for delayable inputs
- bugfix: potential segfault issue when multiple $UDPServerRun directives are specified. Thanks to Michael Biebl for helping to debug this one.
- relaxed GnuTLS version requirement to 1.4.0 after confirmation from the field that this version is sufficient
- bugfix: parser did not properly handle empty structured data
As a reminder:
Version 4.1.0 [DEVEL] (rgerhards), 2008-11-18
********************************* WARNING ********************************* This version has a slightly different on-disk format for message entries. As a consequence, old queue files being read by this version may have an invalid output timestamp, which could result to some malfunction inside the output driver. It is recommended to drain queues with the previous version before switching to this one. ********************************* WARNING *********************************
- greatly enhanced performance when compared to v3.
- added configuration directive “HUPisRestart” which enables to configure
HUP to be either a full restart or “just” a leightweight way to
close open files. - enhanced legacy syslog parser to detect year if part of the timestamp
the format is based on what Cisco devices seem to emit. - added a setting “$OptimizeForUniprocessor” to enable users to turn off
pthread_yield calls which are counter-productive on multiprocessor
machines (but have been shown to be useful on uniprocessors) - reordered imudp processing. Message parsing is now done as part of main
message queue worker processing (was part of the input thread)
This should also improve performance, as potentially more work is
done in parallel. - bugfix: compressed syslog messages could be slightly mis-uncompressed
if the last byte of the compressed record was a NUL - added $UDPServerTimeRequery option which enables to work with
less acurate timestamps in favor of performance. This enables querying
of the time only every n-th time if imudp is running in the tight
receive loop (aka receiving messsages at a high rate) - doc bugfix: queue doc had wrong parameter name for setting controlling
worker thread shutdown period - restructured rsyslog.conf documentation
- bugfix: memory leak in ompgsql
Thanks to Ken for providing the patch
ChangeLog for 5.1.0 (devel)
Version 5.1.0 [DEVEL] (rgerhards), 2009-05-29
- redesigned queue engine so that it supports ultra-reliable operations. This resulted in a rewrite of large parts. The new capability can be used to build audit-grade systems on the basis of rsyslog.
- added $MainMsgQueueDequeueBatchSize and $ActionQueueDequeueBatchSize configuration directives
- implemented a new transactional output module interface which provides superior performance (for databases potentially far superior performance)
- increased ompgsql performance by adapting to new transactional output module interface
ChangeLog for 4.3.1 (devel)
Version 4.3.1 [DEVEL] (rgerhards), 2009-05-25
- added capability to run multiple tcp listeners (on different ports)
- performance enhancement: imtcp calls parser no longer on input thread but rather inside on of the potentially many main msg queue worker threads (an enhancement scheduled for all input plugins where this is possible)
- added $GenerateConfigGraph configuration command which can be used to generate nice-looking (and very informative) rsyslog configuration graphs.
- added $ActionName configuration directive (currently only used for graph generation, but may find other uses)
- improved doc
* added (hopefully) easier to grasp queue explanation - improved testbench
* added tests for queue disk-only mode (checks disk queue logic) - bugfix: light and full delay watermarks had invalid values, badly affecting performance for delayable inputs
- build system improvements – thanks to Michael Biebl
- added new testing module imdiag, which enables to talk to the rsyslog core at runtime. The current implementation is only a beginning, but can be expanded over time
ChangeLog for 4.1.7 (beta)
Version 4.1.7 [BETA] (rgerhards), 2009-04-22
- bugfix: $InputTCPMaxSessions config directive was accepted, but not honored. This resulted in a fixed upper limit of 200 connections.
- bugfix: the default for $DirCreateMode was 0644, and as such wrong. It has now been changed to 0700. For some background, please see http://lists.adiscon.net/pipermail/rsyslog/2009-April/001986.html
- bugfix: ompgsql did not detect problems in sql command execution this could cause loss of messages. The handling was correct if the connection broke, but not if there was a problem with statement execution. The most probable case for such a case would be invalid sql inside the template, and this is now much easier to diagnose.
ChangeLog for 3.22.0 (v3-stable)
Version 3.22.0 [v3-stable] (rgerhards), 2009-04-21 This is the first stable release that includes the full functionality of the 3.21.x version tree.
- bugfix: $InputTCPMaxSessions config directive was accepted, but not honored. This resulted in a fixed upper limit of 200 connections.
- bugfix: the default for $DirCreateMode was 0644, and as such wrong. It has now been changed to 0700. For some background, please see http://lists.adiscon.net/pipermail/rsyslog/2009-April/001986.html
- bugfix: ompgsql did not detect problems in sql command execution this could cause loss of messages. The handling was correct if the connection broke, but not if there was a problem with statement execution. The most probable case for such a case would be invalid sql inside the template, and this is now much easier to diagnose.
ChangeLog for 4.3.0 (devel)
Version 4.3.0 [DEVEL] (rgerhards), 2009-04-17
- new feature: new output plugin omprog, which permits to start program and feed it (via its stdin) with syslog messages. If the program terminates, it is restarted.
- improved internal handling of RainerScript functions, building the necessary plumbing to support more functions with decent runtime performance. This is also necessary towards the long-term goal of loadable library modules.
- added new RainerScript function “tolower”
- improved testbench
- added tests for tcp-based reception
- added tcp-load test (1000 connections, 20,000 messages)
- added $MaxOpenFiles configuration directive
- bugfix: solved potential memory leak in msg processing, could manifest itself in imtcp
- bugfix: ompgsql did not detect problems in sql command execution this could cause loss of messages. The handling was correct if the connection broke, but not if there was a problem with statement execution. The most probable case for such a case would be invalid sql inside the template, and this is now much easier to diagnose.
ChangeLog for 3.20.6 (v3-stable)
Version 3.20.6 [v3-stable] (rgerhards), 2009-04-16
- this is the last v3-stable for the 3.20.x series
- bugfix: $InputTCPMaxSessions config directive was accepted, but not honored. This resulted in a fixed upper limit of 200 connections.
- bugfix: the default for $DirCreateMode was 0644, and as such wrong. It has now been changed to 0700. For some background, please see http://lists.adiscon.net/pipermail/rsyslog/2009-April/001986.html
ChangeLog for 2.0.7 V2 (stable)
Version 2.0.7 V2-STABLE (rgerhards), 2008-04-14
- bugfix: the default for $DirCreateMode was 0644, and as such wrong. It has now been changed to 0700. For some background, please see http://lists.adiscon.net/pipermail/rsyslog/2009-April/001986.html
- bugfix: “$CreateDirs off” also disabled file creation. Thanks to William Tisater for analyzing this bug and providing a patch.
The actual code change is heavily based on William’s patch. - bugfix: memory leak in ompgsql
Thanks to Ken for providing the patch - bugfix: potential memory leak in msg.c
This one did not surface yet and the issue was actually found due to
a problem in v4 – but better fix it here, too
ChangeLog for 4.1.6 (devel)
Version 4.1.6 [DEVEL] (rgerhards), 2009-04-07
- added new “csv” property replacer options to enable simple creation of CSV-formatted outputs (format from RFC4180 is used)
- implemented function support in RainerScript. That means the engine parses and compile functions, as well as executes a few build-in ones. Dynamic loading and registration of functions is not yet supported – but we now have a good foundation to do that later on.
- implemented the strlen() RainerScript function
- added a template output module
- added -T rsyslogd command line option, enables to specify a directory where to chroot() into on startup. This is NOT a security feature but introduced to support testing. Thus, -T does not make sure chroot() is used in a secure way. (may be removed later)
- added omstdout module for testing purposes. Spits out all messages to stdout – no config option, no other features
- added a parser testing suite (still needs to be extended, but a good start)
- modified $ModLoad statement so that for modules whom’s name starts with
a dot, no path is prepended (this enables relative-pathes and should not break any valid current config) - fixed a bug that caused action retries not to work correctly situation was only cleared by a restart
- bugfix: closed dynafile was potentially never written until another dynafile name was generated – potential loss of messages
- improved omfile so that it properly suspends itself if there is an i/o or file name generation error. This enables it to be used with the full high availability features of rsyslog’s engine
- bugfix: fixed some segaults on Solaris, where vsprintf() does not check for NULL pointers
- improved performance of regexp-based filters. Thanks to Arnaud Cornet for providing the idea and initial patch.
- added a new way how output plugins may be passed parameters. This is more effcient for some outputs. They new can receive fields not only as a single string but rather in an array where each string is seperated.
- added (some) developer documentation for output plugin interface
- bugfix: potential abort with DA queue after high watermark is reached There exists a race condition that can lead to a segfault. Thanks go to vbernetr, who performed the analysis and provided patch, which I only tweaked a very little bit.
- bugfix: imtcp did incorrectly parse hostname/tag Thanks to Luis Fernando Muñoz Mejías for the patch.
ChangeLog for 3.20.5 (v3-stable)
Version 3.20.5 [v3-stable] (rgerhards), 2009-04-02
- bugfix: potential abort with DA queue after high watermark is reached
There exists a race condition that can lead to a segfault. Thanks
go to vbernetr, who performed the analysis and provided patch, which
I only tweaked a very little bit. - fixed bugs in RainerScript:
- when converting a number and a string to a common type, both were
actually converted to the other variable’s type. - the value of rsCStrConvertToNumber() was miscalculated.
Thanks to varmojfekoj for the patch
- when converting a number and a string to a common type, both were
- fixed a bug in configure.ac which resulted in problems with
environment detection – thanks to Michael Biebl for the patch - fixed a potential segfault problem in gssapi code
thanks to varmojfekoj for the patch - doc enhance: provide standard template for MySQL module and instructions
on how to modify schema