src/daemon/plugin.[ch]: Make the user_data_t* const.
That is, user_data_t* passed to register_* functions. The actual callbacks
are still getting a user_data_t* since they, in theory, would be able to
modify the pointer stored in .data.
Issue: #1954
That is, user_data_t* passed to register_* functions. The actual callbacks
are still getting a user_data_t* since they, in theory, would be able to
modify the pointer stored in .data.
Issue: #1954
src/daemons/plugin.c: Don't modify user_data_t* in plugin_register_flush().
Fixes: #1954
Fixes: #1954
Revert "write_graphite: remove #ifndefs"
This reverts commit de80d27fe7023c2e377674b4cc341e539388b98e.
Fixes: #1953
This reverts commit de80d27fe7023c2e377674b4cc341e539388b98e.
Fixes: #1953
write_http plugin: Don't register a flush callback unconditionally.
Fixes: #1955
Fixes: #1955
Merge branch 'collectd-5.5' into collectd-5.6
curl_json plugin: Skip unexpected non-map values.
Assume, for example, the config `Key "*/foo"`. This config expects JSON
in the form:
{
"bar": {
"foo": 1337
}
}
If the available JSON is instead:
{
"error_code": 0,
"bar": {
"foo": 1337
}
}
the code will take a look at the zero associated with "error_code" and
determine that a map (with key "foo") is expected instead. Previously
the code would continue, eventually calling `cj_get_type()` which
expects that `key->type` is a valid pointer, resulting in a segmentation
fault.
This patch does three things to ensure that this segmentation fault does
not happen again:
1. `cj_get_type()` checks its argument to make sure it is valid before
dereferencing any pointers.
2. In case a non-map is found when a map is expected, the code will
return instead of limping on.
3. After calling `cj_cb_inc_array_index()`, which may update the key,
make sure that it actually did and that key is valid now.
Fixes: #1896
Assume, for example, the config `Key "*/foo"`. This config expects JSON
in the form:
{
"bar": {
"foo": 1337
}
}
If the available JSON is instead:
{
"error_code": 0,
"bar": {
"foo": 1337
}
}
the code will take a look at the zero associated with "error_code" and
determine that a map (with key "foo") is expected instead. Previously
the code would continue, eventually calling `cj_get_type()` which
expects that `key->type` is a valid pointer, resulting in a segmentation
fault.
This patch does three things to ensure that this segmentation fault does
not happen again:
1. `cj_get_type()` checks its argument to make sure it is valid before
dereferencing any pointers.
2. In case a non-map is found when a map is expected, the code will
return instead of limping on.
3. After calling `cj_cb_inc_array_index()`, which may update the key,
make sure that it actually did and that key is valid now.
Fixes: #1896
collectd.conf(5): Document the semantics of the "TypesDB" option in more detail.
Fixed: #1241
Fixed: #1241
contrib/migrate-4-5.px: Don't convert "ps_code" and "ps_data" to derive.
Fixes: #1687
Fixes: #1687
Add missing option to write_graphite example
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
apache plugin: End statements with semi-colons.
If only I knew why this wasn't considered a syntax error …
If only I knew why this wasn't considered a syntax error …
Bump version to 5.6.0; Update ChangeLog.
Merge branch 'collectd-5.5' into collectd-5.6
src/types.db: Remove minimum value from "power".
The battery plugin reports negative power when the battery is discharging.
The battery plugin reports negative power when the battery is discharging.
Merge branch 'collectd-5.5' into collectd-5.6
Merge remote-tracking branch 'github/pr/1909' into collectd-5.5
Merge branch 'collectd-5.5' into collectd-5.6
target_set.c: rename 'MetaDataSet' option
Fixes #1910
Fixes #1910
plugin_dispatch_multivalue: Submit NAN when computing percantage of an empty set.
Fix compilation against >=xfsprogs-4.7.0
[backport of commit 225ee7bb45152c51c1c9508b2e776cef36d2682d]
Suggested-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
Gentoo-Bug: https://bugs.gentoo.org/590998
Fixes: https://github.com/collectd/collectd/issues/1877
[backport of commit 225ee7bb45152c51c1c9508b2e776cef36d2682d]
Suggested-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
Gentoo-Bug: https://bugs.gentoo.org/590998
Fixes: https://github.com/collectd/collectd/issues/1877
network plugin: Initialize libgcrypt only when needed.
Previously, libgcrypt was initialized unconditionally in network_init(),
which may cause trouble on some systems. With this patch, gcrypt is
initialized if:
* A client socket as signing or encryption enabled, or
* a server socket has an auth_file configured.
Fixes: #1902
Previously, libgcrypt was initialized unconditionally in network_init(),
which may cause trouble on some systems. With this patch, gcrypt is
initialized if:
* A client socket as signing or encryption enabled, or
* a server socket has an auth_file configured.
Fixes: #1902
Merge pull request #1899 from rubenk/python-fixes-for-interactive-sessions
python plugin: Fixing possible problems with the GIL in interactive sessions.
python plugin: Fixing possible problems with the GIL in interactive sessions.
Try a different way to silence GCC.
On some distro's some versions of GCC warn about the unchecked result,
even though it is casted to void.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425 for the
discussion.
On some distro's some versions of GCC warn about the unchecked result,
even though it is casted to void.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425 for the
discussion.
python plugin: Fixing possible problems with the GIL.
If AfterFork is called after threads have been initialized.
Also handle SIGTERM while reading from an interactive session slightly more gracefully.
If AfterFork is called after threads have been initialized.
Also handle SIGTERM while reading from an interactive session slightly more gracefully.
Really fix tests on Solaris
3b264ee checked for KERNEL_SOLARIS, but this is only defined if config.h is included.
3b264ee checked for KERNEL_SOLARIS, but this is only defined if config.h is included.
Merge branch 'collectd-5.5' into collectd-5.6
Changelog: fix unresolved merge conflict introduced in dc2eb04
Removed the conflict markers left over, and copy-pasted the changes
added in c0f5748.
Removed the conflict markers left over, and copy-pasted the changes
added in c0f5748.
collectd.spec: mention new cpusleep plugin in changelog
Merge branch 'collectd-5.5' into collectd-5.6
collectd.spec: increment version number in changelog
collectd.spec: remove misleading items from changelog
python plugin: Don't shut down the Python interpreter as long as there might be callback methods around.
Merge remote-tracking branch 'github/pr/1890' into collectd-5.6
ceph plugin: Assert that the strings on the stack are non-NULL.
The static analyzer is whining about passing NULLs to strcmp().
The static analyzer is whining about passing NULLs to strcmp().
ceph plugin: Guard against g_num_daemons being zero.
clang scan-build flags this, because this variable is used to declare VLAs.
clang scan-build flags this, because this variable is used to declare VLAs.
write_kafka: Fix misleading indentation
Reported by GCC-6 with the `-Werror=misleading-indentation` option.
Thanks for Lucas Nussbaum for reporting this issue!
Fixes https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=831194
Reported by GCC-6 with the `-Werror=misleading-indentation` option.
Thanks for Lucas Nussbaum for reporting this issue!
Fixes https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=831194
8 years agopython plugin: Unregister all internal callback lists before Python interpreter shutdown.
python plugin: Unregister all internal callback lists before Python interpreter shutdown.
python plugin: Properly deal with identifier being NULL in a log callback.
python plugin: Grab GIL before freeing callbacks. If their refcount reaches 0 Python code will be executed.
Merge remote-tracking branch 'github/pr/1879'
Merge remote-tracking branch 'github/pr/1883'
CONTRIBUTING.md: Address review comments.
README: Point to CONTRIBUTING.md for bugs and PRs.
CONTRIBUTING.md: Address review comments.
configure.ac: rewrite liblua detection
Not all distro's have a lua.pc file.
This looks for the most common ones, newest versions first.
Not all distro's have a lua.pc file.
This looks for the most common ones, newest versions first.
support older versions of riemann-c-client
riemann_client_set_timeout() was added in 1.8.0, but this
version hasn't landed in all distro's yet.
Fixes #986
riemann_client_set_timeout() was added in 1.8.0, but this
version hasn't landed in all distro's yet.
Fixes #986
scanner.l: remove GCC pragma
GCC on RHEL5 doesn't recognize it and warns about it
scanner.l:36: warning: ignoring #pragma GCC diagnostic
make[4]: *** [scanner.lo] Error 1
CC parser.lo
GCC on RHEL5 doesn't recognize it and warns about it
scanner.l:36: warning: ignoring #pragma GCC diagnostic
make[4]: *** [scanner.lo] Error 1
CC parser.lo
CONTRIBUTING.md: Add operating system / distribution.
Add a GitHub issue template.
GenericJMX plugin: Suppress "unchecked conversion" warning.
The internet tells me there is no elegant way around this.
The internet tells me there is no elegant way around this.
scanner.l: really fix pragma
Fix build with older GCCs
They warn for unknown pragmas
They warn for unknown pragmas
Merge pull request #1874 from rubenk/utils-dns-fix-compiler-warning
utils_dns.c: fix compiler warning
utils_dns.c: fix compiler warning
ceph plugin: Rewrite the BUFFER_ADD() macro.
I'm hoping that this fixes a potential integer underrun that may occur
when unconditionally subtracting strlen(dest) from sizeof(dest).
Issue: #1835
I'm hoping that this fixes a potential integer underrun that may occur
when unconditionally subtracting strlen(dest) from sizeof(dest).
Issue: #1835
liboconfig: silence warnings in generated code
Lex generates these, nothing we can do about them
Lex generates these, nothing we can do about them
processes plugin: fix 3 compiler warnings on OS X
processes.c:1569:26: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int pset = 0; pset < pset_list_len; pset++)
~~~~ ^ ~~~~~~~~~~~~~
processes.c:1590:27: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int task = 0; task < task_list_len; task++)
~~~~ ^ ~~~~~~~~~~~~~
processes.c:1688:32: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int thread = 0; thread < thread_list_len; thread++)
~~~~~~ ^ ~~~~~~~~~~~~~~~
processes.c:1569:26: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int pset = 0; pset < pset_list_len; pset++)
~~~~ ^ ~~~~~~~~~~~~~
processes.c:1590:27: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int task = 0; task < task_list_len; task++)
~~~~ ^ ~~~~~~~~~~~~~
processes.c:1688:32: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int thread = 0; thread < thread_list_len; thread++)
~~~~~~ ^ ~~~~~~~~~~~~~~~
Merge remote-tracking branch 'github/master'
ceph plugin: Change g_num_daemons to size_t.
The variable is used as size for variable length arrays (VLAs), which
cannot have negative size.
Issue: #1835
The variable is used as size for variable length arrays (VLAs), which
cannot have negative size.
Issue: #1835
cpu plugin: fix compiler warning on OS X
cpu.c:593:24: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int cpu = 0; cpu < cpu_list_len; cpu++)
~~~ ^ ~~~~~~~~~~~~
cpu.c:593:24: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int cpu = 0; cpu < cpu_list_len; cpu++)
~~~ ^ ~~~~~~~~~~~~
write_http plugin: Sanity check arguments to wh_write_command().
Issue: #1835
Issue: #1835
annotate vfprintf-like 'vcomplain' function
utils_complain.c:56:40: warning: format string is not a string literal
[-Wformat-nonliteral]
vsnprintf (message, sizeof (message), format, ap);
^~~~~~
utils_complain.c:56:40: warning: format string is not a string literal
[-Wformat-nonliteral]
vsnprintf (message, sizeof (message), format, ap);
^~~~~~
libcollectdclient: annotate vprintf-like function
client.c:126:21: warning: format string is not a string literal [-Wformat-nonliteral]
status = vprintf (format, ap);
^~~~~~
client.c:126:21: warning: format string is not a string literal [-Wformat-nonliteral]
status = vprintf (format, ap);
^~~~~~
Python plugin: fix compiler warning
python.c:397:25: warning: comparison of integers of different signs:
'size_t' (aka 'unsigned long') and 'int' [-Wsign-compare]
for (size_t i = 0; i < num; ++i) {
~ ^ ~~~
python.c:397:25: warning: comparison of integers of different signs:
'size_t' (aka 'unsigned long') and 'int' [-Wsign-compare]
for (size_t i = 0; i < num; ++i) {
~ ^ ~~~
Lua plugin: fix old style definition
lua.c: In function ‘module_register’:
lua.c:588:6: warning: old-style function definition
[-Wold-style-definition]
void module_register() {
^~~~~~~~~~~~~~~
lua.c: In function ‘module_register’:
lua.c:588:6: warning: old-style function definition
[-Wold-style-definition]
void module_register() {
^~~~~~~~~~~~~~~
Merge pull request #1885 from rubenk/lua-plugin
Add a Lua plugin for Collectd
Add a Lua plugin for Collectd
README: bump Python requirement to 2.6
Lua plugin: add to rpm specfile
Lua plugin: add to README
Lua plugin: make function array const
Lua plugin: Terminate array with sentinel
From the API docs:
Any array of luaL_Reg must end with a sentinel entry in which both name
and func are NULL.
From the API docs:
Any array of luaL_Reg must end with a sentinel entry in which both name
and func are NULL.
collectd-lua(5) fix syntax error in pod
Lua plugin: add section to collectd.conf(5)
Lua plugin: s/Collectd/collectd/g in manpage
Lua plugin: fix build with Lua 5.1
Lua plugin: add a manpage
Lua plugin: turn the collectd functions into a lib
Now the module shows up in 'package.loaded':
for name, func in pairs(package.loaded['collectd']) do
print(name, func)
end
returns:
dispatch_values function: 0x7f38b8a472c0
log_debug function: 0x7f38b8a47130
register_write function: 0x7f38b8a47520
log_info function: 0x7f38b8a470d0
register_read function: 0x7f38b8a47360
log_warning function: 0x7f38b8a47070
log_error function: 0x7f38b8a47100
log_notice function: 0x7f38b8a470a0
Now the module shows up in 'package.loaded':
for name, func in pairs(package.loaded['collectd']) do
print(name, func)
end
returns:
dispatch_values function: 0x7f38b8a472c0
log_debug function: 0x7f38b8a47130
register_write function: 0x7f38b8a47520
log_info function: 0x7f38b8a470d0
register_read function: 0x7f38b8a47360
log_warning function: 0x7f38b8a47070
log_error function: 0x7f38b8a47100
log_notice function: 0x7f38b8a470a0
Lua plugin: use existing type for functions array
Merge remote-tracking branch 'github/pr/1882'
Merge pull request #1887 from rubenk/make-xfs-optional
Add an option to disable building with XFS support
Add an option to disable building with XFS support
liboconfig: make function static
configfile.h: remove unused declaration
Stop using net-snmp-config to detect libnetsmp
net-snmp-config returns the settings used to compile and link
libnetsnmp, not the settings needed to compile and link code against it.
This resulted in various issues, namely overlinking, failure to compile
without compiler optimisations, and overriding of our compiler flags.
One example is the following, just noticed on RHEL5:
cc1: warnings being treated as errors
snmp.c: In function 'csnmp_config_add_host':
snmp.c:767: warning: ISO C90 forbids mixed declarations and code
make[3]: *** [snmp_la-snmp.lo] Error 1
We do compile in C99 mode, but net-snmp-config adds
-Wdeclaration-after-statement to our build command line. The GCC on
RHEL5 returns a warning, while later GCCs just ignore this.
net-snmp-config returns the settings used to compile and link
libnetsnmp, not the settings needed to compile and link code against it.
This resulted in various issues, namely overlinking, failure to compile
without compiler optimisations, and overriding of our compiler flags.
One example is the following, just noticed on RHEL5:
cc1: warnings being treated as errors
snmp.c: In function 'csnmp_config_add_host':
snmp.c:767: warning: ISO C90 forbids mixed declarations and code
make[3]: *** [snmp_la-snmp.lo] Error 1
We do compile in C99 mode, but net-snmp-config adds
-Wdeclaration-after-statement to our build command line. The GCC on
RHEL5 returns a warning, while later GCCs just ignore this.
collectdmon: define PREFIX and LOCALSTATEDIR
Not an issue in practice, but this helps when running the code through
lint.
Not an issue in practice, but this helps when running the code through
lint.
collectdctl: prefix may be undefined as well
This won't happen in practice since ./configure sets it, but it isn't
set when running the code through lint.
This won't happen in practice since ./configure sets it, but it isn't
set when running the code through lint.
ceph plugin: just continue
barometer plugin: add missing include
collectctl: define LOCALSTATEDIR if not defined
write_log plugin: mark unused attribute as unused
treewide: use designated initializers for user_data
openldap plugin: replace comma with semicolon
This incidentally worked, but it is not a good idea.
This incidentally worked, but it is not a good idea.
Lua plugin: wrap debug code in COLLECT_DEBUG
No use formatting the string if we're not going to use it.
No use formatting the string if we're not going to use it.
Add an option to disable building with XFS support
Right now, if you have the xfs development headers installed,
they will be picked up. Add an option to disable this behaviour.
Fixes #1878
Right now, if you have the xfs development headers installed,
they will be picked up. Add an option to disable this behaviour.
Fixes #1878
zone plugin: fix typo in error message
collectd.conf(5): add Host option for curl_json
configure.ac: check for ExtUtils::MakeMaker
The perl bindings need this module so perl can generate Makefile.pl.
Fixes #1886
The perl bindings need this module so perl can generate Makefile.pl.
Fixes #1886
Add a Lua plugin for Collectd
CONTRIBUTING.md: Give more concrete advice on writing bugs and PRs.
grpc plugin: Unify SSL config options.
These option names have been copied from the Apache webserver.
These option names have been copied from the Apache webserver.
grpc plugin: Implement the <Server "host" "port"> option.
This allows the gRPC plugin to send metrics, via gRPC, to another
collectd instance or other implementation of the "Collectd" gRPC
service.
This allows the gRPC plugin to send metrics, via gRPC, to another
collectd instance or other implementation of the "Collectd" gRPC
service.
Merge pull request #900 from ccin2p3/faxmodem/cpu-numcpu
implement reporting of ncpu
implement reporting of ncpu
address @octo and @rubenk's comments
Change-Id: I5661a555d95227e63b3c873a0fd0b2360a040342
Change-Id: I5661a555d95227e63b3c873a0fd0b2360a040342