Code

Merge branch 'collectd-4.10' into collectd-5.0
authorFlorian Forster <octo@collectd.org>
Sun, 1 Apr 2012 10:01:58 +0000 (12:01 +0200)
committerFlorian Forster <octo@collectd.org>
Sun, 1 Apr 2012 10:01:58 +0000 (12:01 +0200)
Conflicts:
ChangeLog
src/collectd.conf.pod
src/common.c
src/network.c
src/processes.c
version-gen.sh

12 files changed:
1  2 
ChangeLog
configure.in
src/Makefile.am
src/collectd.conf.pod
src/common.c
src/common.h
src/libcollectdclient/client.c
src/memcached.c
src/network.c
src/perl.c
src/processes.c
src/snmp.c

diff --cc ChangeLog
index 4a99a15ad70c1f45b5cdf843e5445d5af5e2748c,32e9ba336307b4de7cbd0c2e41bb6f3b6521854d..1beef6eb2540223faa157b2e604212c544d55e86
+++ b/ChangeLog
 +2012-02-19, Version 5.0.3
 +      * Build system: Fix problems when building the ipvs and iptables
 +        plugins. Thanks to Sebastian Harl for his patch. A bashism in the
 +        version-gen.sh script has been fixed. Thanks to Jo-Philipp Wich for
 +        his patch.
 +      * csv and rrdtool plugins: Print a more helpful error message when the
 +        DataDir is a symlink pointing to a non-existing location. Thanks to
 +        Jonathan Nieder for his patch.
 +      * exec plugin: Fix a problem when using select(2) to read from file
 +        handles. Thanks to Gerrie Roos for his patch.
 +      * network plugin: An incorrect error message in the handling of the
 +        "Interface" configuration option has been fixed. Thanks to Gerrie
 +        Roos for his patch.
 +      * oracle plugin: A potential endless loop in the error handling has
 +        been fixed.
 +      * python plugin: A crash bug in the configuration handling has been
 +        fixed. Thanks to Sven Trenkel for his patch.
 +      * interfaces plugin: The change which was supposed to ignore "bogus"
 +        interfaces has been reverted, since it ignored legit interfaces, such
 +        as bonding pseudo-devices as well.
 +
 +2012-01-21, Version 5.0.2
 +      * curl_xml plugin: Fix handling of file:// and other URLs (which don't
 +        follow HTTP status codes). Thanks to Fabien Wernli for his patch!
 +      * df plugin: Fix handling of negative "available" counts. This can
 +        occur with some file systems, for example UFS. Thanks to Toni Ylenius
 +        for his patch.
 +      * interface plugin: "mac" interfaces are now ignored on Solaris. These
 +        pseudo-interfaces occur multiple times, causing warnings. Also switch
 +        to 64-bit counters on Solaris, improving overflow behavior for
 +        high-speed interfaces. Thanks to Eddy Geez and Fabien Wernli for
 +        their patches.
 +      * memory plugin: Account kernel and unused memory under Solaris. Thanks
 +        to Fabien Wernli for his patch.
 +      * network plugin: A bug in the interaction between the Network plugin
 +        and filter chains has been fixed: When a filter modified a field such
 +        as the hostname, subsequent values in the same network packets could
 +        have ended up using the modified name rather than the original name.
 +        Thanks to Sebastian Harl for identifying the problem.
 +      * oracle plugin: A memory leak has been fixed in the parameter handling.
 +      * python plugin: A memory leak has been fixed. Thanks to Sven Trenkel
 +        for fixing this bug!
 +
 +2011-10-07, Version 5.0.1
 +      * collectd: A mutex leak has been fixed in the meta data code. Thanks
 +        to Rafal Lesniak for his patch.
 +      * collectd: Compatibility fixes for GCC 4.6 have been applied. Thanks
 +        to Peter Green for his patch.
 +      * csv plugin: The line buffer size has been increased. Thanks to Colin
 +        McCabe for the patch.
 +      * curl_json plugin: Don't use the "parent" node to build the type
 +        instance, if it is empty. Compatibility with libyajl 2 has been
 +        added. Thanks to "spupykin" of the Arch Linux project for the initial
 +        code. Formatting of time has been fixed in the JSON module.
 +      * exec plugin: Fix the timestamp value passed to notification scripts.
 +        Thanks to Alexander Kovalenko for fixing this.
 +      * iptables plugin: Fix linking with some versions of libiptc.
 +      * irq plugin: Fix support for interrupts under Linux. The old code
 +        assumed that interrupts have a numeric value -- this is no longer
 +        true for Linux. Thanks to Bostjan Skufca for implementing this.
 +      * notify_desktop plugin: Compatibility with libnotify 0.7 has been
 +        added. Thanks to Samuli Suominen for his patch.
 +      * processes plugin: Fix handling of regular expressions containing
 +        spaces. Thanks for Sebastian Harl for fixing this.
 +      * rrdtool, rrdcached plugins: Improve precision of the XFF parameter.
 +        Previously, values like 0.999 would have been rounded to 1.0. Thanks
 +        to Francois-Xavier Bourlet for fixing this.
 +      * varnish plugin: Fix data type handling of some metrics. Some values
 +        were submitted as gauge even though they were derives.
 +      * Various plugin: Set a multi-threading flag in libcurl. Thanks to Mike
 +        Flisher for the fix.
 +
 +2011-03-28, Version 5.0.0
 +      * collectd: The "FQDNLookup" option is now enabled by default.
 +      * collectd: The internal representation of time has been changed to
 +        allow a higher accuracy than one second.
 +      * collectdcmd: This new command line utility can send various commands
 +        to collectd using the UnixSock plugin. Thanks to Håkon Dugstad
 +        Johnsen and Sebastian Harl for their code.
 +      * collectd-nagios: The "-m" option has been implemented (treat NaNs as
 +        critical).
 +      * collectd-tg: Traffic generator creating bogus network traffic
 +        compatible to the Network plugin. This utility can be used to
 +        stress-test new write plugins and collectd in general.
 +      * libcollectdclient: Creating and sending network packets has been
 +        added to the collectd client library.
 +      * All data sets: The data source name of all data sets with exactly
 +        one data source has been changed to "value".
 +      * All plugins: All "counter" data sources have been converted to
 +        "derive" data sources. All plugins now use "derive" by default, but
 +        plugins such as the network plugin can still handle "counter", of
 +        course. The minimum value of all derive data sources is zero, the
 +        maximum value is unspecified.
 +      * amqp plugin: The new AMQP plugin can send data to and receive data
 +        from an AMQP broker. Thanks to Sebastien Pahl for his code.
 +      * apache plugin: Backwards compatibility code has been removed.
 +        Support for the IBM HTTP Server has been added. Thanks to Manuel
 +        Luis Sanmartín Rozada for his patch.
 +      * contextswitch plugin: Support for sysctlbyname(3) has been added.
 +        Thanks to Kimo Rosenbaum for his patch.
 +      * df plugin: The default behavior has been changed to be equivalent to
 +        the "ReportReserved" behavior of v4.
 +      * dns plugin: Improved RFC 1035 name parsing has been imported from
 +        "dnstop".
 +      * exec plugin: Backwards compatibility code has been removed.
 +      * GenericJMX plugin: The "InstancePrefix" option has been added to
 +        "Connection" blocks.
 +      * hddtemp plugin: The "TranslateDevicename" config option has been
 +        removed.
 +      * interface plugin: Use the "plugin instance" to store the interface
 +        value.
 +      * libvirt plugin: The "InterfaceFormat" option has been added. Thanks
 +        to Ruben Kerkhof for his patch.
 +      * lpar plugin: New plugins for "logical partitions", a virtualization
 +        technique of POWER CPUs. Thanks to Aurélien Reynaud for his code and
 +        patience.
 +      * modbus plugin: Support for libmodbus 2.9.2 has been added and the
 +        license has been changes to LGPLv2.1.
 +      * mysql plugin: Backwards compatibility code has been removed. The
 +        data sets used have been improved.
 +      * network plugin: The default buffer size has been increased to
 +        1452 bytes.
 +      * perl plugin: Backwards compatibility code has been removed.
 +      * postgresql plugin: Backwards compatibility code has been removed.
 +      * redis plugin: Plugin for collecting statistics from Redis, a key-
 +        value store, has been added. Thanks to Andres J. Diaz for his code.
 +      * swap plugin: Implement collection of physical and virtual memory
 +        statistics under Solaris. The new default is collecting physical
 +        memory. Thanks to Aurélien Reynaud for his patches.
 +      * threshold plugin: The threshold configuration has been moved into
 +        this separate plugin.
 +      * unixsock plugin: The "DeleteSocket" option has been added.
 +      * varnish plugin: The new Varnish plugin reads statistics from
 +        Varnish, a web accelerator. Thanks to Jérôme Renard and Marc
 +        Fournier for their contributions.
 +      * write_redis: New plugin for writing data to Redis, a key-value
 +        store.
 +      * zfs_arc plugin: The data sets have been replaced by more elegant
 +        alternatives.
 +      * v5upgrade target: Target for converting v4 data sets to the v5
 +        schema.
 +
+ 2012-03-23, Version 4.10.7
+       * Build system: Fix the use of a libltdl macro. Thanks to Clemens Lang
+         for fixing this. Adresses some issues with building the iptables
+         plugin under Gentoo.
+       * libcollectdclient: A memory leak in the lcc_getval() function has
+         been fixed. Thanks to Jason Schmidlapp for finding and fixing this
+         issue.
+       * bind plugin: The use of 'QType" types has been fixed.
+       * df plugin: Fixed compiler issue under Mac OS X 10.7.
+       * conntrack plugin: Support zero as legitimate value. Thanks to Louis
+         Opter for his patch.
+       * memcached plugin: Increased the size of a static buffer, which was
+         truncating status messages form memcached. Thanks to Timon for the
+         patch.
+       * network plugin: Forwarding of notifications has been disabled. This
+         was a contition not checked for before, which may retult in an
+         endless loop.
+       * processes plugin: Support for process names with spaces has been
+         added to the Linux implementation. Thanks to Darrell Bishop for his
+         patch.
+       * perl plugin: A race condition in several callbacks, including log and
+         write callbacks, has been fixed. Thanks to "Rrpv" for reporting this
+         bug.
+       * snmp plugin: A bug when casting unsigned integers to gauge values has
+         been fixed: Unsigned integers would be cast to a signed integer and
+         then to a gauge, possibly resulting in a negative value.
+       * tcpconns plugin: Compilation with newer versions of the FreeBSD
+         runtime has been fixed.
  2012-02-19, Version 4.10.6
        * Build system: Fix problems when building the ipvs and iptables
          plugins. Thanks to Sebastian Harl for his patch. A bashism in the
diff --cc configure.in
Simple merge
diff --cc src/Makefile.am
Simple merge
Simple merge
diff --cc src/common.c
index 0069a8b6508691b4fd2270642d10452428606fc4,c5bd6470aa47e80564e5145312bfc9dec89b1500..459c7024bb2bcb9824c0c131d5ea10a9e50845d4
@@@ -919,43 -849,25 +919,59 @@@ int parse_identifier (char *str, char *
        return (0);
  } /* int parse_identifier */
  
- int parse_value (const char *value, value_t *ret_value, int ds_type)
 +int parse_identifier_vl (const char *str, value_list_t *vl) /* {{{ */
 +{
 +      char str_copy[6 * DATA_MAX_NAME_LEN];
 +      char *host = NULL;
 +      char *plugin = NULL;
 +      char *plugin_instance = NULL;
 +      char *type = NULL;
 +      char *type_instance = NULL;
 +      int status;
 +
 +      if ((str == NULL) || (vl == NULL))
 +              return (EINVAL);
 +
 +      sstrncpy (str_copy, str, sizeof (str_copy));
 +
 +      status = parse_identifier (str_copy, &host,
 +                      &plugin, &plugin_instance,
 +                      &type, &type_instance);
 +      if (status != 0)
 +              return (status);
 +
 +      sstrncpy (vl->host, host, sizeof (vl->host));
 +      sstrncpy (vl->plugin, plugin, sizeof (vl->plugin));
 +      sstrncpy (vl->plugin_instance,
 +                      (plugin_instance != NULL) ? plugin_instance : "",
 +                      sizeof (vl->plugin_instance));
 +      sstrncpy (vl->type, type, sizeof (vl->type));
 +      sstrncpy (vl->type_instance,
 +                      (type_instance != NULL) ? type_instance : "",
 +                      sizeof (vl->type_instance));
 +
 +      return (0);
 +} /* }}} int parse_identifier_vl */
 +
+ int parse_value (const char *value_orig, value_t *ret_value, int ds_type)
  {
+   char *value;
    char *endptr = NULL;
+   size_t value_len;
+   if (value_orig == NULL)
+     return (EINVAL);
+   value = strdup (value_orig);
+   if (value == NULL)
+     return (ENOMEM);
+   value_len = strlen (value);
+   while ((value_len > 0) && isspace ((int) value[value_len - 1]))
+   {
+     value[value_len - 1] = 0;
+     value_len--;
+   }
  
    switch (ds_type)
    {
diff --cc src/common.h
Simple merge
Simple merge
diff --cc src/memcached.c
Simple merge
diff --cc src/network.c
index e0c329c6f0abae9f10231a08f14fb08d72cfab90,34cd1c0151b5fcf01e04ce86b58f0d9c6986b90d..5fed1b196933a5bb00d39d8e9f3c9d828930bd84
@@@ -3094,9 -3136,12 +3154,12 @@@ static int network_notification (const 
    int   buffer_free = sizeof (buffer);
    int   status;
  
-   memset (buffer, '\0', sizeof (buffer));
+   if (!check_send_notify_okay (n))
+     return (0);
+   memset (buffer, 0, sizeof (buffer));
  
 -  status = write_part_number (&buffer_ptr, &buffer_free, TYPE_TIME,
 +  status = write_part_number (&buffer_ptr, &buffer_free, TYPE_TIME_HR,
        (uint64_t) n->time);
    if (status != 0)
      return (-1);
diff --cc src/perl.c
Simple merge
diff --cc src/processes.c
index 8f4eb88fc168f3c1b36835c5ed294c95dd31ed08,5e448cf9b21d03f731bdf4d79e66567846419eb8..8a1436e1855fd0f8b1f4c5f76e8c73b43832621a
@@@ -881,12 -881,15 +881,15 @@@ int ps_read_process (int pid, procstat_
        char *fields[64];
        char  fields_len;
  
-       int   i;
+       int   buffer_len;
  
-       int   name_len;
+       char *buffer_ptr;
+       size_t name_start_pos;
+       size_t name_end_pos;
+       size_t name_len;
  
 -      long long unsigned cpu_user_counter;
 -      long long unsigned cpu_system_counter;
 +      derive_t cpu_user_counter;
 +      derive_t cpu_system_counter;
        long long unsigned vmem_size;
        long long unsigned vmem_rss;
        long long unsigned stack_size;
diff --cc src/snmp.c
Simple merge