CC src/libcollectdclient/libcollectdclient_la-server.lo
In file included from src/libcollectdclient/server.c:37:
/usr/include/net/if.h:121: error: field 'ifi_lastchange' has incomplete type
/usr/include/net/if.h:369: error: field 'ifru_addr' has incomplete type
/usr/include/net/if.h:370: error: field 'ifru_dstaddr' has incomplete type
/usr/include/net/if.h:371: error: field 'ifru_broadaddr' has incomplete type
/usr/include/net/if.h:399: error: field 'ifrau_addr' has incomplete type
/usr/include/net/if.h:405: error: field 'ifra_dstaddr' has incomplete type
/usr/include/net/if.h:407: error: field 'ifra_mask' has incomplete type
/usr/include/net/if.h:450: error: field 'addr' has incomplete type
/usr/include/net/if.h:451: error: field 'dstaddr' has incomplete type
/usr/include/net/if.h:457: error: expected specifier-qualifier-list before 'sa_family_t'
In file included from /usr/include/net/if.h:466,
from src/libcollectdclient/server.c:37:
/usr/include/net/if_arp.h:79: error: field 'arp_pa' has incomplete type
/usr/include/net/if_arp.h:80: error: field 'arp_ha' has incomplete type
*** Error 1 in . (Makefile:6017 'src/libcollectdclient/libcollectdclient_la-server.lo': @echo " CC " src/libcollectdclient/libcollectd...)
*** Error 1 in /home/ruben/src/collectd (Makefile:4188 'all')
src/daemon/collectd.c:579:9: warning: declaration shadows a local variable [-Wshadow]
int status;
^
src/daemon/collectd.c:558:7: note: previous declaration is here
int status;
^
src/daemon/collectd.c:499:5: warning: no previous prototype for function 'configure_collectd' [-Wmissing-prototypes]
int configure_collectd(struct cmdline_config *config) {
^
CC src/filecount.lo
src/filecount.c:66:6: warning: no previous prototype for function 'fc_free_dir' [-Wmissing-prototypes]
void fc_free_dir(fc_directory_conf_t *dir) {
^
1 warning generated.
Kavanagh, Mark B [Tue, 27 Feb 2018 17:28:55 +0000 (17:28 +0000)]
utils_ovs: fix resource leaks
In ovs_db_init(), upon failure of either ovs_db_event_thread_init()
and/or ovs_db_poll_thread_init(), ovs_db_destroy() is invoked, in
order to release OVSDB data resources.
However, in the event that ovs_db_destroy() returns an error value,
some OVSDB resources are never released, and are consequently lost.
Resolve this issue by checking the return value of ovs_db_destroy()
and manually releasing the appropriate resources accordingly.
Fixes: 5a90d0e ("ovs_events: Address PR comments") Signed-off-by: Kavanagh, Mark B <mark.b.kavanagh@intel.com>
Kavanagh, Mark B [Mon, 26 Feb 2018 17:08:31 +0000 (17:08 +0000)]
utils_ovs: fix potential NULL
In ovs_utils_get_map_value(), YAJL_GET_ARRAY may return a NULL
pointer, which is subsequently dereferenced. Ensure that the
pointer is non-NULL before proceeding.
Fixes: 12f6497 ("ovs_events: Add external ids as metadata") Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Kavanagh, Mark B [Mon, 26 Feb 2018 16:12:26 +0000 (16:12 +0000)]
utils_ovs: fix potential NULL-string dereference
In ovs_utils_get_map_value(), a potential NULL-string, returned
by YAJL_GET_STRING(), is passed to strcmp, and subsequently
dereferenced. Ensure that said string is non-NULL.
Kavanagh, Mark B [Mon, 26 Feb 2018 14:49:00 +0000 (14:49 +0000)]
ovs_stats: fix potential NULL array dereference
In ovs_stats_update_bridge(), YAJL_GET_ARRAY() may return a NULL
pointer. Ensure that a non-NULL pointer is returned, before
attempting to dererence same.
Mark Kavanagh [Wed, 21 Feb 2018 16:15:01 +0000 (16:15 +0000)]
ovs_stats: fix potential NULL-string dereference
The YAJL_GET_STRING macro may return NULL; ensure that the returned
string is non-NULL, before passing it to ovs_stats_new_port(), within
the context of the ovs_stats_update_bridge() function.
Since this change introduces another return path, a single 'failure'
return point is introduced to ovs_stats_bridge().
Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Mark Kavanagh [Mon, 19 Feb 2018 15:55:45 +0000 (15:55 +0000)]
utils_ovs: fix potential strcmp() NULL ptr param
YAJL_GET_STRING(array_values[0]) may return NULL if
array_values[0]->string is NULL; passing a NULL parameter to
strcmp() is not recommended, since the resultant behaviour may
be undefined.
Resolve the issue by adding a NULL check for the string returned
by YAJL_GET_STRING.
Mark Kavanagh [Mon, 19 Feb 2018 13:48:12 +0000 (13:48 +0000)]
ovs_stats: fix potential NULL dereference
ovs_stats_new_port() accepts a character pointer, uuid, as a parameter,
and copies it into port->uuid. Later, this value is dereferenced in
ovs_stats_update_bridge(). If uuid was NULL, then a SEGV will occur.
Resolve this issue by checking if uuid is NULL in ovs_stats_new_port().
Harry van Haaren [Wed, 21 Mar 2018 15:33:00 +0000 (15:33 +0000)]
dpdk: increase buffer size for parsing lcores
This commit increases the size of the "high_str" buffer,
which is later used by the strncpy() function. Static analysis
showed that there was a potential issue in accessing this string
if the buffer is smaller.
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
virt: Fix unit tests build with libvirt versions < 1.3
Previously too much code was disabled in ifdefs, and during
compilation with old libvirt (version < 1.3.x) warning was shown
because of unused test variables.
Previously information about Virtual Machine domains state
(e.g. VIR_DOMAIN_RUNNING, VIR_DOMAIN_PAUSED..) was not
dispatched (e.g. file with domain states was not created by
CSV plugin).
Now current VM state information with corresponding reason is
dispatched as ‘domain_state’.
Antoine Naud [Thu, 14 Sep 2017 10:14:28 +0000 (11:14 +0100)]
src/virt.c: State notifications for all persistent domains
When virt option PersistentNotification is enabled, the notifications of VMs
states are sent only for running VMs (whereas they should be sent for all
persistent VMs, including running, suspended, shut off VMs). This behaviour is
due to the fact that VM states are notified while fetching all other metrics,
which is executed only for running VMs.
This commit fixes this issue by decoupling the notifications of VMs states from
fetching and dispatching metrics values. In this purpose, a new function named
persistent_domains_state_notification is added to fetch the states (and reasons)
of persistent VMs and notify them. This function is called at each read interval
before fetching and dispatching the metrics from running VMs.
Unit Tests for the new functions are implemented.
Change-Id: Ic2befb3e7826184696344b037916bc603ec01341 Signed-off-by: Antoine Naud <antoinex.naud@intel.com>
Notifications about VM state are received on every read interval, so the same
notification about specific VM state is received several times within a minute,
which lead to growing log files. This issue is fixed by generating notifications
only for VM state changes (denoted also here lifecycle transitions).
This commit adds a binary option PersistentNotification to virt plugin. When
this option is set to false (default value), only VM state changes are notified
as soon as they occur. When this option is set to true, VM states are notified
on every read interval.
Change-Id: I46ebe2d2f1b72432e7b458530c4cc0eac3e26c6a Signed-off-by: Antoine Naud <antoinex.naud@intel.com>
Having this option will allow to configure monitoring of PMU
events only on specific CPUs thus decrease number of opened
descriptors significantly and avoid 'Too many open files' errors.
New "Cores" option is similar to that available in intel_rdt plugin.
New tool utils_config_cores is added to parse "Cores" option.