From: Ruben Kerkhof Date: Tue, 26 Jul 2016 10:50:07 +0000 (+0200) Subject: Merge branch 'collectd-5.4' into collectd-5.5 X-Git-Tag: collectd-5.6.0~3^2~9 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=dc2eb04;hp=3c2be75d51fc6a72ae765c54101eb85f43d3b41a;p=collectd.git Merge branch 'collectd-5.4' into collectd-5.5 Conflicts: ChangeLog contrib/redhat/collectd.spec version-gen.sh --- diff --git a/ChangeLog b/ChangeLog index 0a823b07..25257d76 100644 --- a/ChangeLog +++ b/ChangeLog @@ -28,10 +28,6 @@ * Perl plugin: Init callbacks have been changed to run essentially single-threaded to avoid race conditions by init functions which create additional threads. Thanks to Pavel Rochnyack. #1706 - * Processes plugin: A compilation error on systems without "regex.h" has - been fixed. Thanks to Corey Kosak. - * Processes plugin: A memory leak on Solaris has been fixed. Thanks to - Jim Quinn. * Processes plugin: A warning about too long process names has been added. Thanks to Marc Fournier. #1284 * Redis plugin: A memory leak in an error handling code path has been @@ -400,6 +396,68 @@ Marc Fournier and Wilfried Goesgens. #552 * Zookeeper plugin: This new plugin reads data from the Apache Zookeeper "MNTR" command. Thanks to Jeremy Katz. #826 +======= + * Processes plugin and Swap plugin: These plugins have been corrected to + also work inside FreeBSD jails. Thanks to biancalana. #1019 + * Processes plugin: A warning about too long process names has been + added. Thanks to Marc Fournier. #1284 + * Processes plugin: Process counting on the FreeBSD and OpenBSD + platforms has been fixed. Thanks to Herve COMMOWICK. #1298 + * Processes plugin: The plugin was fixed to work properly on Solaris. + Thanks to Jan Andres. #919 + * Python plugin: A double-free bug got fixed. Thanks to Sven Trenkel. + #1285 + * RRDtool plugin: A race condition leading to corrupt RRD file creation + has been fixed. Thanks to Manuel Luis Sanmartín Rozada. #1031 + * SNMP plugin: The "Gauge32" signedness was corrected to match RFC1902. + Thanks to Nathan Ward. #1325 + * StatsD plugin: A deadlock on plugin shutdown has been fixed. Thanks to + Pavel Rochnyack #1703 + * StatsD plugin: A memory leak was corrected. Thanks to Florian Forster. + #997 + * StatsD plugin: A symbol lookup error was fixed by properly linking the + plugin against libm. Thanks to Florian Forster. + * StatsD plugin: "utils_latency": Support for including values above + 1000 in percentile calculation has been added. Thanks to Yoga + Ramalingam. #401 + * StatsD plugin: "utils_latency": Two division by zero error conditions + have been corrected. Thanks to Wilfried Goesgens. #655 + * StatsD plugin: Counters absolute counts are now also reported. Thanks + to Pierre-Yves Ritschard. #1311 + * StatsD plugin: The plugin now emits NaN values when no timer event is + recorded. Thanks to Florian Forster. #1038, #1039 + * StatsD plugin: The plugin was corrected to avoid crashing when + negative timer values are submitted. Thanks to Florian Forster. #1131 + * Tail CSV plugin: The plugin was fixed to work properly with multiple + "Collect" options and a bug got fixed when no "TimeFrom" is specified. + Thanks to Manuel Luis Sanmartín Rozada and Florian Forster. #1032 + * TCPConns plugin: A memory leak was fixed. Thanks to Florian Forster. + #1074 + * TCPConns plugin: An bug causing collectd to enter an inifinite loop on + OpenBSD was fixed. Thanks to Landry Breuil. #1094 + * Threshold plugin: Threshold configuration blocks can now be defined in + different files. Thanks to Michael Salmon. #551 + * vmem plugin: Support for pgsteal in recent Linux kernels has been + added. Thanks to Jakub Jankowski. #1307 + * vmem plugin: The DSType for nr_dirtied and nr_written was corrected to + report a derive. Thanks to Marek Becka. #1072 + * Write Graphite plugin: Error handling when submitting metrics to the + server is now more robust. Thanks to Sam Pointer. #1364 + * Write HTTP plugin: Freeing of memory holding HTTP headers during + shutdown has been fixed. Thanks to Tolga Ceylan. + * Write Redis plugin: Multi-Valued key was made easier to parse by + adding a "|" character as a delimiter. Thanks to brianpkelly and + Florian Forster. #1070 + * Write Redis plugin: The timestamp format was corrected. Thanks to + Florian Forster. + * ZFS ARC plugin: The plugin was will not emit warning about missing + "l2_size" stats anymore. Thanks to Jan Andres. #919 + * 152 patches have been applied to numerous plugins and core components, + fixing various programming errors which were reported by scan-build, + libasan, FBInfer, coverity-scan, clang and gcc-6: Thanks to Ruben + Kerkhof, Florian Forster, Marc Fournier, Corey Kosak, Laurent, + Claudius Zingerli and Fabien Wernli. +>>>>>>> collectd-5.4 2015-02-26, Version 5.4.2 * Build system: Numerous fixes. Thanks to Bjørn Nordbø, Jim Radford, diff --git a/src/daemon/meta_data.c b/src/daemon/meta_data.c index e1d0ec5b..29236e2f 100644 --- a/src/daemon/meta_data.c +++ b/src/daemon/meta_data.c @@ -213,6 +213,17 @@ static meta_entry_t *md_entry_lookup (meta_data_t *md, /* {{{ */ return (e); } /* }}} meta_entry_t *md_entry_lookup */ +/* + * Each value_list_t*, as it is going through the system, is handled by exactly + * one thread. Plugins which pass a value_list_t* to another thread, e.g. the + * rrdtool plugin, must create a copy first. The meta data within a + * value_list_t* is not thread safe and doesn't need to be. + * + * The meta data associated with cache entries are a different story. There, we + * need to ensure exclusive locking to prevent leaks and other funky business. + * This is ensured by the uc_meta_data_get_*() functions. + */ + /* * Public functions */ diff --git a/src/network.c b/src/network.c index 7c15e8f9..26caa29e 100644 --- a/src/network.c +++ b/src/network.c @@ -529,7 +529,7 @@ static void network_init_gcrypt (void) /* {{{ */ err = gcry_control (GCRYCTL_INIT_SECMEM, 32768); if (err) { - ERROR ("network plugin: gcry_control (GCRYCTL_SET_THREAD_CBS) failed: %s", gcry_strerror (err)); + ERROR ("network plugin: gcry_control (GCRYCTL_INIT_SECMEM) failed: %s", gcry_strerror (err)); abort (); }