src/daemon/common.c: Rewrite check_capability() using cap_get_bound().
capget(2) is Linux specific and the use of the raw syscalls is
discouraged. Also, there have been interesting crashes on some systems.
Issue: #2009
capget(2) is Linux specific and the use of the raw syscalls is
discouraged. Also, there have been interesting crashes on some systems.
Issue: #2009
write_kafka plugin: Reintroduce the "Key Random" setting.
Fixes: #1977
Fixes: #1977
Merge pull request #2005 from rpv-tomsk/issue-1996
write_http: Fixed DS type check
write_http: Fixed DS type check
write_http: Fixed DS type check
Closes: #1996
Closes: #1996
common.c: Use _LINUX_CAPABILITY_VERSION_3 in cap_header
While check_capability() function already requires
_LINUX_CAPABILITY_VERSION_3 via "#ifdef" since commit 448627953c we still
set the cap_header's version to deprecated _LINUX_CAPABILITY_VERSION. This
results in a warning like
> capability: warning: `collectd' uses 32-bit capabilities (legacy support in use)
from the kernel when a plugin (like iptables) calls our check_capability()
function.
With this commit we will set cap_header to kernel's current capability
version (_LINUX_CAPABILITY_VERSION_3), which is default since
kernel 2.6.26.
Signed-off-by: Florian Forster <octo@collectd.org>
While check_capability() function already requires
_LINUX_CAPABILITY_VERSION_3 via "#ifdef" since commit 448627953c we still
set the cap_header's version to deprecated _LINUX_CAPABILITY_VERSION. This
results in a warning like
> capability: warning: `collectd' uses 32-bit capabilities (legacy support in use)
from the kernel when a plugin (like iptables) calls our check_capability()
function.
With this commit we will set cap_header to kernel's current capability
version (_LINUX_CAPABILITY_VERSION_3), which is default since
kernel 2.6.26.
Signed-off-by: Florian Forster <octo@collectd.org>
Merge branch 'collectd-5.5' into collectd-5.6
fix one typo spotted by Debian's lintian tool
fix a couple of typos spotted by Debian's lintian tool
collectd.spec: increment changelog to mention 5.6.1
Bump version number in redhat spec
Merge remote-tracking branch 'github/pr/1958' into collectd-5.5
Bump version to 5.6.1; Update ChangeLog.
Merge branch 'collectd-5.5' into collectd-5.6
Merge remote-tracking branch 'github/pr/1961' into collectd-5.5
write_graphite: remove linking against libyajl (#1976)
write_graphite doesn't have anything to do with json. This seems to have
been accidentally added in 30c1111.
Fixes https://bugs.debian.org/839771
write_graphite doesn't have anything to do with json. This seems to have
been accidentally added in 30c1111.
Fixes https://bugs.debian.org/839771
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
Use readdir() instead of the deprecated readdir_r().
Cf. https://sourceware.org/ml/libc-alpha/2016-02/msg00093.html
Cf. https://sourceware.org/ml/libc-alpha/2016-02/msg00093.html
RRDCacheD plugin: Improve various RRD-related error messages.
RRDCacheD plugin: Try to reconnect upon failed operations.
The RRD client library does not provide means to check the status of a
connection and there's no way to detect that the connection is broken after,
for example, the daemon restarted. To work around that, try to reconnect if
any client operation fails.
Reported via https://bugs.debian.org/657877
The RRD client library does not provide means to check the status of a
connection and there's no way to detect that the connection is broken after,
for example, the daemon restarted. To work around that, try to reconnect if
any client operation fails.
Reported via https://bugs.debian.org/657877
commom: Fixed AIX doesn't have MSG_DONTWAIT
Merge branch 'collectd-5.4' into collectd-5.5
contrib/examples/myplugin.c: Fix copy and paste error.
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.
Also fix query_plans_by_table
#1905 happens here obviously, too.
#1905 happens here obviously, too.
pgsql plugin: avoid parsing error from query_plans
idx_scan/idx_tup_fetch can be NULL, avoid trying to parse that into a number.
This should fix #1905.
idx_scan/idx_tup_fetch can be NULL, avoid trying to parse that into a number.
This should fix #1905.
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
src/common.c: parse_value: Quote string that failed to parse.
Issue: #1905
Issue: #1905
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