Merge branch 'v5-stable-newstats' into v5-devel
authorRainer Gerhards <rgerhards@adiscon.com>
Mon, 19 Mar 2012 17:10:20 +0000 (18:10 +0100)
committerRainer Gerhards <rgerhards@adiscon.com>
Mon, 19 Mar 2012 17:10:20 +0000 (18:10 +0100)
Conflicts:
ChangeLog
plugins/imtcp/imtcp.c
tcpsrv.h

1  2 
ChangeLog
doc/imtcp.html
plugins/imtcp/imtcp.c
tcps_sess.c
tcpsrv.c
tcpsrv.h

diff --cc ChangeLog
+++ b/ChangeLog
 -- added capability to use a local interface IP address as fromhost-ip for
 -  imuxsock imklog
 -  new config directives: $IMUXSockLocalIPIF, $klogLocalIPIF
 +---------------------------------------------------------------------------
 +Version 5.9.6  [V5-DEVEL], 2012-03-??
 +- bugfix: imklog invalidly computed facility and severity
 +  closes: http://bugzilla.adiscon.com/show_bug.cgi?id=313
+ - added configuration directive to disable octet-counted framing
+   for imtcp, directive is $InputTCPServerSupportOctetCountedFraming 
 -  $MainMsgQueueLightDelayMark, $ActionQueueLightDelayMark; both
 -  specify number of messages starting at which a delay happens.
+ - added configuration directives to customize queue light delay marks
 +---------------------------------------------------------------------------
 +Version 5.9.5  [V5-DEVEL], 2012-01-27
 +- improved impstats subsystem, added many new counters
 +- enhanced module loader to not rely on PATH_MAX
 +- refactored imklog linux driver, now combined with BSD driver
 +  The Linux driver no longer supports outdated kernel symbol resolution,
 +  which was disabled by default for very long. Also overall cleanup,
 +  resulting in much smaller code. Linux and BSD are now covered by a
 +  single small driver.
 +- $IMUXSockRateLimitInterval DEFAULT CHANGED, was 5, now 0
 +  The new default turns off rate limiting. This was chosen as people
 +  experienced problems with rate-limiting activated by default. Now it
 +  needs an explicit opt-in by setting this parameter.
 +  Thanks to Chris Gaffney for suggesting to make it opt-in; thanks to
 +  many unnamed others who already had complained at the time Chris made
 +  the suggestion ;-)
 +---------------------------------------------------------------------------
 +Version 5.9.4  [V5-DEVEL], 2011-11-29
 +- imuxsock: added capability to "annotate" messages with "trusted
 +  information", which contains some properties obtained from the system
 +  and as such sure to not be faked. This is inspired by the similiar idea
 +  introduced in systemd.
 +- removed dependency on gcrypt for recently-enough GnuTLS
 +  see: http://bugzilla.adiscon.com/show_bug.cgi?id=289
 +- bugfix: imuxsock did no longer ignore message-provided timestamp, if
 +  so configured (the *default*). Lead to no longer sub-second timestamps.
 +  closes: http://bugzilla.adiscon.com/show_bug.cgi?id=281
 +- bugfix: omfile returns fatal error code for things that go really wrong
 +  previously, RS_RET_RESUME was returned, which lead to a loop inside the
 +  rule engine as omfile could not really recover.
 +- bugfix: rsyslogd -v always said 64 atomics were not present
 +  thanks to mono_matsuko for the patch
 +---------------------------------------------------------------------------
 +Version 5.9.3  [V5-DEVEL], 2011-09-01
 +- bugfix/security: off-by-two bug in legacy syslog parser, CVE-2011-3200
 +- bugfix: mark message processing did not work correctly
 +- added capability to emit config error location info for warnings 
 +  otherwise, omusrmsg's warning about new config format was not
 +  accompanied by problem location.
 +- bugfix: potential misadressing in property replacer
 +- bugfix: MSGID corruption in RFC5424 parser under some circumstances
 +  closes: http://bugzilla.adiscon.com/show_bug.cgi?id=275
 +- bugfix: The NUL-Byte for the syslogtag was not copied in MsgDup (msg.c)
 +---------------------------------------------------------------------------
 +Version 5.9.2  [V5-DEVEL] (rgerhards), 2011-07-11
 +- systemd support: set stdout/stderr to null - thx to Lennart for the patch
 +- added support for the ":omusrmsg:" syntax in configuring user messages
 +- added support for the ":omfile:" syntax in configuring user messages
 +---------------------------------------------------------------------------
 +Version 5.9.1  [V5-DEVEL] (rgerhards), 2011-06-30
 +- added support for obtaining timestamp for kernel message from message
 +  If the kernel time-stamps messages, time is now take from that
 +  timestamp instead of the system time when the message was read. This
 +  provides much better accuracy. Thanks to Lennart Poettering for
 +  suggesting this feature and his help during implementation.
 +- added support for obtaining timestamp from system for imuxsock
 +  This permits to read the time a message was submitted to the system
 +  log socket. Most importantly, this is provided in microsecond resolution.
 +  So we are able to obtain high precision timestampis even for messages
 +  that were - as is usual - not formatted with them. This also simplifies
 +  things in regard to local time calculation in chroot environments.
 +  Many thanks to Lennart Poettering for suggesting this feature,
 +  providing some guidance on implementing it and coordinating getting the
 +  necessary support into the Linux kernel.
 +- bugfix: timestamp was incorrectly calculated for timezones with minute
 +  offset
 +  closes: http://bugzilla.adiscon.com/show_bug.cgi?id=271
 +- bugfix: problems in failover action handling
 +  closes: http://bugzilla.adiscon.com/show_bug.cgi?id=270
 +  closes: http://bugzilla.adiscon.com/show_bug.cgi?id=254
 +- bugfix: mutex was invalidly left unlocked during action processing
 +  At least one case where this can occur is during thread shutdown, which
 +  may be initiated by lower activity. In most cases, this is quite
 +  unlikely to happen. However, if it does, data structures may be 
 +  corrupted which could lead to fatal failure and segfault. I detected
 +  this via a testbench test, not a user report. But I assume that some
 +  users may have had unreproducable aborts that were cause by this bug.
 +- bugfix: memory leak in imtcp & subsystems under some circumstances
 +  This leak is tied to error conditions which lead to incorrect cleanup
 +  of some data structures. [backport from v6]
 +- bugfix/improvement:$WorkDirectory now gracefully handles trailing slashes
 +---------------------------------------------------------------------------
 +Version 5.9.0  [V5-DEVEL] (rgerhards), 2011-06-08
 +- imfile: added $InputFileMaxLinesAtOnce directive
 +- enhanced imfile to support input batching
 +- added capability for imtcp and imptcp to activate keep-alive packets
 +  at the socket layer. This has not been added to imttcp, as the latter is
 +  only an experimental module, and one which did not prove to be useful.
 +  reference: http://kb.monitorware.com/post20791.html
 +- added support to control KEEPALIVE settings in imptcp
 +  this has not yet been added to imtcp, but could be done on request.
 +- $ActionName is now also used for naming of queues in impstats
 +  as well as in the debug output
 +- bugfix: do not open files with full privileges, if privs will be dropped
 +  This make the privilege drop code more bulletproof, but breaks Ubuntu's
 +  work-around for log files created by external programs with the wrong
 +  user and/or group. Note that it was long said that this "functionality"
 +  would break once we go for serious privilege drop code, so hopefully
 +  nobody still depends on it (and, if so, they lost...).
 +- bugfix: pipes not opened in full priv mode when privs are to be dropped
 +- this begins a new devel branch for v5
 +- better handling of queue i/o errors in disk queues. This is kind of a
 +  bugfix, but a very intrusive one, this it goes into the devel version
 +  first. Right now, "file not found" is handled and leads to the new
 +  emergency mode, in which disk action is stopped and the queue run
 +  in direct mode. An error message is emited if this happens.
 +- added support for user-level PRI provided via systemd
 +- added new config directive $InputTCPFlowControl to select if tcp
 +  received messages shall be flagged as light delayable or not.
 +- enhanced omhdfs to support batching mode. This permits to increase
 +  performance, as we now call the HDFS API with much larger message
 +  sizes and far more infrequently
 +- bugfix: failover did not work correctly if repeated msg reduction was on
 +  affected directive was: $ActionExecOnlyWhenPreviousIsSuspended on
 +  closes: http://bugzilla.adiscon.com/show_bug.cgi?id=236
  ---------------------------------------------------------------------------
  Version 5.8.9  [V5-stable] 2012-03-??
  - bugfix: stopped DA queue was never processed after a restart due to a
diff --cc doc/imtcp.html
Simple merge
@@@ -82,8 -82,8 +82,9 @@@ static permittedPeers_t *pPermPeersRoo
  
  
  /* config settings */
 +static int bKeepAlive = 0;            /* support keep-alive packets */
  static int iTCPSessMax = 200; /* max number of sessions */
+ static int bSuppOctetFram = 1; /* octet counted TCP framing supported? */
  static int iTCPLstnMax = 20; /* max number of sessions */
  static int iStrmDrvrMode = 0; /* mode for stream driver, driver-dependent (0 mostly means plain tcp) */
  static int bEmitMsgOnClose = 0; /* emit an informational message on close by remote peer */
@@@ -291,10 -288,9 +292,11 @@@ static rsRetVa
  resetConfigVariables(uchar __attribute__((unused)) *pp, void __attribute__((unused)) *pVal)
  {
        iTCPSessMax = 200;
 +      bKeepAlive = 0;
+       bSuppOctetFram = 1;
        iTCPLstnMax = 20;
        iStrmDrvrMode = 0;
 +      bUseFlowControl = 0;
        bEmitMsgOnClose = 0;
        iAddtlFrameDelim = TCPSRV_NO_ADDTL_DELIMITER;
        bDisableLFDelim = 0;
@@@ -330,8 -326,8 +332,10 @@@ CODEmodInit_QueryRegCFSLineHdl
        /* register config file handlers */
        CHKiRet(omsdRegCFSLineHdlr(UCHAR_CONSTANT("inputtcpserverrun"), 0, eCmdHdlrGetWord,
                                   addTCPListener, NULL, STD_LOADABLE_MODULE_ID));
 +      CHKiRet(omsdRegCFSLineHdlr(UCHAR_CONSTANT("inputtcpserverkeepalive"), 0, eCmdHdlrBinary,
 +                                 NULL, &bKeepAlive, STD_LOADABLE_MODULE_ID));
+       CHKiRet(omsdRegCFSLineHdlr(UCHAR_CONSTANT("inputtcpserversupportoctetcountedframing"), 0, eCmdHdlrBinary,
+                                  NULL, &bSuppOctetFram, STD_LOADABLE_MODULE_ID));
        CHKiRet(omsdRegCFSLineHdlr(UCHAR_CONSTANT("inputtcpmaxsessions"), 0, eCmdHdlrInt,
                                   NULL, &iTCPSessMax, STD_LOADABLE_MODULE_ID));
        CHKiRet(omsdRegCFSLineHdlr(UCHAR_CONSTANT("inputtcpmaxlisteners"), 0, eCmdHdlrInt,
diff --cc tcps_sess.c
Simple merge
diff --cc tcpsrv.c
Simple merge
diff --cc tcpsrv.h
+++ b/tcpsrv.h
@@@ -125,16 -124,13 +126,17 @@@ BEGINinterface(tcpsrv) /* name must als
        rsRetVal (*SetNotificationOnRemoteClose)(tcpsrv_t *pThis, int bNewVal); /* 2009-10-01 */
        /* added v9 -- rgerhards, 2010-03-01 */
        rsRetVal (*SetbDisableLFDelim)(tcpsrv_t*, int);
 +      /* added v10 -- rgerhards, 2011-04-01 */
 +      rsRetVal (*SetUseFlowControl)(tcpsrv_t*, int);
 +      /* added v11 -- rgerhards, 2011-05-09 */
 +      rsRetVal (*SetKeepAlive)(tcpsrv_t*, int);
  ENDinterface(tcpsrv)
- #define tcpsrvCURR_IF_VERSION 11 /* increment whenever you change the interface structure! */
 -#define tcpsrvCURR_IF_VERSION 10 /* increment whenever you change the interface structure! */
++#define tcpsrvCURR_IF_VERSION 12 /* increment whenever you change the interface structure! */
  /* change for v4:
   * - SetAddtlFrameDelim() added -- rgerhards, 2008-12-10
   * - SetInputName() added -- rgerhards, 2008-12-10
   * change for v5 and up: see above
 - * for v10: param bSuppOctetFram added to configureTCPListen
++ * for v12: param bSuppOctetFram added to configureTCPListen
   */