Florian Forster [Sun, 21 Aug 2011 14:40:23 +0000 (16:40 +0200)]
configure: Link with ip4tc and ip6tc, too.
This solves this problem:
octo@leeloo:/tmp $ gcc -o conftest -g -O2 conftest.c -liptc -ldl
/usr/bin/ld: /tmp/ccuJEDqP.o: undefined reference to symbol 'iptc_init'
/usr/bin/ld: note: 'iptc_init' is defined in DSO /lib64/libip4tc.so.0 so try adding it to the linker command line
/lib64/libip4tc.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
Why the iptables plugin compiles without this is beyond me.
The CSV plugin formerly used a relatively small output buffer. If you
had a large dataset, you would always get error -1 because the line
length was be too long. This patch extends the buffer.
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Fri, 17 Jun 2011 08:25:48 +0000 (10:25 +0200)]
rrdcached plugin: Register write/flush only if DaemonAddress has been given.
Else, the write callback would remove itself on the first call. This
operation, however, is not thread-safe as access to the write list is not
synchronized. Thus, removing the callback at that point leads to random
segfaults.
Bruno Prémont [Fri, 18 Mar 2011 07:24:40 +0000 (08:24 +0100)]
Fix compilation error with plugin_register_shutdown
Compiling collectd-4.10.2 on an OpenSuSE 11.3 system causes the
following error:
snmp.c: In function ‘module_register’:
snmp.c:1620:3: error: passing argument 1 of ‘plugin_register_shutdown’ discards qualifiers from pointer target type
plugin.h:275:5: note: expected ‘char *’ but argument is of type ‘const char *’
Convert plugin_register_shutdown's name argument from 'char *' to
'const char *' in order to match the other plugin_register_*
functions.
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Gregory Szorc [Sat, 5 Mar 2011 06:25:45 +0000 (22:25 -0800)]
dispatch proper values in Python write plugin
Fixes the Python write callback so the appropriate value is dispatched to
Python. Previously, the code only looked at the first element of a data set
to determine which value type (GAUGE, COUNTER, etc) to dispatch. If your data
set consisted of multiple values of different types, then the Python write
plugin was receiving bad values for the elements at position n > 0 whose type
was not the same as that at position 0.
Andres J. Diaz [Tue, 1 Mar 2011 16:25:22 +0000 (17:25 +0100)]
Removed bogus checking in ut_config.
Since threshold is a plugin, the main config block (<Plugin "threshold">)
cannot contain only one keyword (as was mandatory in previous versions),
so checking must be removed.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Andres J. Diaz [Tue, 1 Mar 2011 16:25:21 +0000 (17:25 +0100)]
Fix buffer length in parse_identifier_vl function.
In parse_identifier_vl function (common.c), the value passed to
sstrncpy as buffer length is the sizeof a char pointer, which
is 4bytes for 32bit arch and 8bytes for 64 bit ones.
This patch fix the length and truncate the buffer to the same size as
destination buffer.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Andres J. Diaz [Tue, 1 Mar 2011 16:25:22 +0000 (17:25 +0100)]
Removed bogus checking in ut_config.
Since threshold is a plugin, the main config block (<Plugin "threshold">)
cannot contain only one keyword (as was mandatory in previous versions),
so checking must be removed.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Andres J. Diaz [Tue, 1 Mar 2011 16:25:21 +0000 (17:25 +0100)]
Fix buffer length in parse_identifier_vl function.
In parse_identifier_vl function (common.c), the value passed to
sstrncpy as buffer length is the sizeof a char pointer, which
is 4bytes for 32bit arch and 8bytes for 64 bit ones.
This patch fix the length and truncate the buffer to the same size as
destination buffer.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Wed, 9 Feb 2011 06:28:03 +0000 (07:28 +0100)]
src/plugin.c: Print a more verbose error message if lt_dlopen() fails.
Since the Debian package doesn't depend on the libraries used by the
collectd plugins, some plugins may fail to load. ltdl reports this with
the very confusing error message "file not found". Since the plugin is
in fact available, many users don't realize a dependency is missing and
assume collectd is looking in the wrong directory -- and they are hardly
to blame for this.
This commit introduces a lengthy error message which hopefully points
users into the right direction.
Florian Forster [Thu, 13 Jan 2011 07:57:24 +0000 (08:57 +0100)]
src/utils_threshold.c: Fix creation of percentage notifications.
Joey Hess has reported a problem when creating notifications from
percentage thresholds. Because the (percentage) minimum value is
compared to the (raw) DS value, the following message is possible:
Message: Host XXX, plugin df type df (instance root): Data source
"free" is currently 1773072384.000000. That is above the warning
threshold of nan%.
A new section will handle this case correctly. In the inverted case, the
problem should not exist.
Blaise Tarr [Mon, 10 Jan 2011 22:15:47 +0000 (17:15 -0500)]
plugin.c: prevent re-adding read functions
When multiple LoadPlugin options are used with a plugin, the plugin is
only loaded once, however the plugin's read function is invoked
multiple times at every interval. This in turn causes undesired
redundant data to be sent to the write plugins.
This patch prevents a plugin's read function from being re-added to
the read_heap and read_list during plugin registration.