Ruben Kerkhof [Sat, 13 May 2017 12:41:48 +0000 (14:41 +0200)]
Remove parentheses around return arguments
They don't do any harm but they are not really needed either.
Contributors are not used to following this style, and reviewers have to
keep pointing it out in reviews. This takes up valuable time for both
the contributor and the reviewer and distracts from the more important
issues.
I used the following Coccinelle patch:
@@
expression e;
@@
- return (e);
+ return e;
spatch is having trouble with some files so I have cleaned up the rest
with a few regexes.
Florian Forster [Fri, 12 May 2017 10:08:55 +0000 (12:08 +0200)]
src/utils_cmd_putval.c: Fix multi-value PUTVAL.
vl.values was allocated outside of the loop and then copied into each
ret_putval->vl[]. This means that later values overwrote the values
stored in previous ret_putval->vl[].
Florian Forster [Sun, 7 May 2017 18:34:09 +0000 (20:34 +0200)]
bind plugin: Use timegm() to convert to time_t if available.
FreeBSD doesn't provide the "extern long timezone", presumably because
it's "only" an XSI extension, leading to a portability issue with the
previous approach.
timegm() is a non-standard function available in GNU's and BSD's libc
which is doing exactly what we need. The previous code is left as a
fallback.
Remove utils_ignorelist.[ch] from daemon; link plugins directly.
The collectd daemon isn't using the "ignorelist" functionality itself --
it was only linked in to provide it to loaded plugins. Since the code is
under the GPL, this interfers with our intend of having an MIT licensed
daemon.
This patch changes the build system to link plugins with the ignorelist
directly instead of expecting the symbols to be in the daemon.
Pavel Rochnyack [Mon, 3 Apr 2017 05:57:09 +0000 (11:57 +0600)]
network plugin: Fix endless loop DOS in parse_packet()
When correct 'Signature part' is received by Collectd, configured without
AuthFile option, condition for endless loop occurs due to missing increase
of pointer to next unprocessed part.
Add support for new libvirt metrics:
- Performance monitoring events
- Domain state & reason
- Percentage CPU usage
- CPU pinning (affinity)
- Disk errors
- File system info
- Job stats
src/utils_ovs.c:366:20: warning: Access to field 'type' results in a dereference of a null pointer (loaded from variable 'jval')
(int)(jval)->type);
^~~~~~~~~~~~
...
Right now, the plugin dispatches values by default and doesn't send
any notification messages. The expected behaviour of the event plugin
is to send notification by default. So, changed default value of
SendNotification & DispatchValues options to opposite.
Pavel Rochnyack [Thu, 9 Mar 2017 17:57:41 +0000 (23:57 +0600)]
processes plugin: Fix broken compilation on AIX
After a bb0000acfc57e230fc1c26099bc7acb913680f1a an extra pse.cpu_system
statement was left in the AIX / elif HAVE_PROCINFO_H section, which caused
the compilation to fail.
Ruben Kerkhof [Sun, 5 Mar 2017 17:43:15 +0000 (18:43 +0100)]
virt plugin: fix build warning
CC src/virt_la-virt.lo
src/virt.c:417:37: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
if ((tag_index < 0) || (tag_index >= STATIC_ARRAY_SIZE(tags))) {
~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
Ruben Kerkhof [Sun, 5 Mar 2017 17:30:23 +0000 (18:30 +0100)]
collectd.spec: Don't enable XFS support on RHEL6
It is missing for i386.
If there's strong interest in having support for xfs in the df plugin in
RHEL6 we can do some macro magic to only BuildRequire xfsprogs-devel if
were not on rhel6 i386, but this was the easiest fix and unblocks our
package builds.
Ruben Kerkhof [Sun, 5 Mar 2017 17:02:30 +0000 (18:02 +0100)]
utils_cmd_flush.c: fix another build warning
src/utils_cmd_flush.c:140:11: warning: declaration shadows a local variable [-Wshadow]
int status;
^
src/utils_cmd_flush.c:114:7: note: previous declaration is here
int status;
^
Ruben Kerkhof [Sun, 5 Mar 2017 16:45:54 +0000 (17:45 +0100)]
ovs_stats plugin: fix some more build warnings
CC src/ovs_stats_la-ovs_stats.lo
src/ovs_stats.c:158:8: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers]
static const iface_counter ovs_stats_counter_name_to_type(const char *counter) {
^~~~~~
src/ovs_stats.c:356:29: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < ports_num; i++)
~ ^ ~~~~~~~~~
src/ovs_stats.c:401:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(bridges)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:415:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(bridges)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:501:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(ports)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:524:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(ports)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:538:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_ARRAY(stats)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:558:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_ARRAY(ext_ids)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:684:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(ports)->len; i++)
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
9 warnings generated.
Ruben Kerkhof [Sun, 5 Mar 2017 16:42:28 +0000 (17:42 +0100)]
ovs_stats plugin: fix build warning
src/ovs_stats.c:158:8: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers]
static const iface_counter ovs_stats_counter_name_to_type(const char *counter) {
^~~~~~
Ruben Kerkhof [Sun, 5 Mar 2017 15:46:47 +0000 (16:46 +0100)]
Check for the CAP_IS_SUPPORTED macro
On EPEL6:
src/daemon/common.c: In function 'check_capability':
src/daemon/common.c:1571: error: implicit declaration of function 'CAP_IS_SUPPORTED'
make[1]: *** [src/daemon/common.lo] Error 1
This change forces dpdkstat plugin to check if memory needs to be resized on
every DPDK_CMD_GET_STATS command, rather than resizing it only once at
initialization. Additionally it fixes incorrect metric retrieval logic, which
allows plugin to dispatch metrics only if number of retrieved extended statistics
is equal to allocated stats array size for port. Based on DPDK API documentation
rte_eth_xstats_get (and rte_eth_xstats_get_names) function can return positive
value lower than array size, which isn't considered a failure.
If primary DPDK process is restarted with a greater number of ports bound to
DPDK driver while collectd dpdkstat plugin is running, then memory isn't resized.
Due to insufficient memory allocation dpdkstat plugin is unable to gather metrics
from new ports.