]>
git.ipfire.org Git - thirdparty/collectd.git/log
Florian Forster [Fri, 2 Feb 2024 09:52:21 +0000 (10:52 +0100)]
format_stackdriver: Add proper error handling to `sd_output_reset()`.
collectd bot [Thu, 1 Feb 2024 16:35:35 +0000 (17:35 +0100)]
Auto-Merge pull request #4268 from octo/6/format_stackdriver
Automatically merged due to "Automerge" label
Florian Forster [Thu, 1 Feb 2024 15:53:44 +0000 (16:53 +0100)]
format_stackdriver: When JSON generation fails, reset the generator because it is in an unknown state.
Florian Forster [Wed, 31 Jan 2024 13:38:01 +0000 (14:38 +0100)]
Merge pull request #4265 from octo/6/cache
[collectd 6] cache: Provide the first metric value available alongside the first metric time.
Florian Forster [Wed, 31 Jan 2024 12:53:14 +0000 (13:53 +0100)]
src/daemon/utils_cache_test.c: Add a test case for decreasing gauges.
Florian Forster [Wed, 31 Jan 2024 12:47:34 +0000 (13:47 +0100)]
format_stackdriver: Add missing `break` statements.
Florian Forster [Wed, 31 Jan 2024 12:46:28 +0000 (13:46 +0100)]
format_stackdriver: Consistently handle `METRIC_TYPE_UNTYPED` as an error.
Florian Forster [Wed, 31 Jan 2024 12:45:58 +0000 (13:45 +0100)]
src/daemon/utils_cache.h: Unify comment style.
Florian Forster [Wed, 31 Jan 2024 07:37:49 +0000 (08:37 +0100)]
format_stackdriver: Use the new `uc_first_metric()` function.
Florian Forster [Wed, 31 Jan 2024 07:32:20 +0000 (08:32 +0100)]
src/daemon/utils_cache.c: Let `uc_get_rate()` return early when called with a gauge metric.
Florian Forster [Wed, 31 Jan 2024 07:18:46 +0000 (08:18 +0100)]
src/daemon/utils_cache.c: Add documentation for `uc_get_rate()`.
This also improved the return values to give more information about which error condition occurred.
Florian Forster [Wed, 31 Jan 2024 06:47:19 +0000 (07:47 +0100)]
src/daemon/utils_cache.c: Change `uc_first_metric()` to return time and value.
Returning both in one call ensures these values are consistent, i.e. it avoids
the case that there might have been an update inbewtween reading time and
value.
Florian Forster [Tue, 30 Jan 2024 12:22:52 +0000 (13:22 +0100)]
src/daemon/utils_cache.c: Automatically initialize the cache when needed.
This simplifies writing unit tests using the cache.
Florian Forster [Tue, 30 Jan 2024 12:18:40 +0000 (13:18 +0100)]
chore: Add unit test for `uc_get_rate`.
Florian Forster [Wed, 31 Jan 2024 09:47:16 +0000 (10:47 +0100)]
Merge pull request #4264 from eero-t/gcc-extra
[collectd 6, WIP] Fix more GCC "-Wextra" warnings in collectd core
Florian Forster [Wed, 31 Jan 2024 08:26:08 +0000 (09:26 +0100)]
Merge pull request #4262 from eero-t/gcc-pedantic-func
[collectd 6, WIP] Fix more GCC "-Wpedantic" warnings
Eero Tamminen [Tue, 30 Jan 2024 16:59:46 +0000 (18:59 +0200)]
message_parser.c: fix -Wextra warnings
And arg name in comment for the function calling message parser
callback.
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Tue, 30 Jan 2024 15:51:51 +0000 (17:51 +0200)]
proc_pids.c: fix signed vs. unsigned comparison warnings
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Tue, 30 Jan 2024 15:50:29 +0000 (17:50 +0200)]
format_stackdriver.c: use counter_t instead of casts
All current uses are for counter_t comparisons, so let's just use that
type. Gets rid of signed vs unsigned comparison warning.
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Tue, 30 Jan 2024 11:07:11 +0000 (13:07 +0200)]
mdevents.c: fix -Wpedantic warnings on array initialization
"{}" initializers are C23 feature, not C99 one:
https://en.cppreference.com/w/c/language/array_initialization
In first 2 cases initialization was redundant as "regerror()" and
"regexec()" fill the given arrays. Event initialization needed to be
fixed as last struct item writing is conditional.
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Tue, 30 Jan 2024 10:42:42 +0000 (12:42 +0200)]
rest of plugins: __FUNCTION__ -> __func__ (C99)
Fixes -Wpendantic warnings in rest of plugins.
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Tue, 30 Jan 2024 10:38:38 +0000 (12:38 +0200)]
dpdk*.c: __FUNCTION__ -> __func__ (C99)
Same -Wpendantic warnings fixes for plugin code.
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Tue, 30 Jan 2024 10:28:04 +0000 (12:28 +0200)]
utils/dpdk/dpdk.*: __FUNCTION__ -> __func__ (C99)
Fixes -Wpendantic warnings, __func__ supported since GCC 2.95.
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Fri, 19 Jan 2024 10:42:42 +0000 (12:42 +0200)]
utils/ovs/ovs.c: __FUNCTION__ -> __func__ (C99)
Fixes -Wpedantic warnings.
Collectd requires C99 support, and __func__ is supported since GCC 2.95 / C99.
Btw. For C++ code, the issue would be murkier. C++11 added __func__
support, but one cannot check just C++ version because MSVC reported
older spec until recently:
- https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
More info on latter:
- https://stackoverflow.com/questions/
7008485 /func-or-function-or-manual-const-char-id
- https://learn.microsoft.com/en-us/cpp/cpp/func?view=msvc-170 +
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Tue, 30 Jan 2024 10:19:29 +0000 (12:19 +0200)]
utils/cmds/cmds_test.c: fix -Wpendantic/-Wformat warning
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Tue, 30 Jan 2024 10:06:16 +0000 (12:06 +0200)]
Merge pull request #4261 from eero-t/gcc-extra
[collectd 6]: Fix some GCC "-Wextra" warnings in collectd core
Eero Tamminen [Thu, 28 Dec 2023 18:02:07 +0000 (20:02 +0200)]
utils/metadata/meta_data.c: fix -Wnull-dereference warning
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Mon, 29 Jan 2024 14:44:09 +0000 (16:44 +0200)]
plugin.c: use union as generic callback type
Fix for -Wcast-function-type (part of -Wextra).
Fixes: d9d5025a0645
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Mon, 29 Jan 2024 16:44:44 +0000 (18:44 +0200)]
utils_cache.c: fix obsolete comment
Fixes: 95a54dd0f69c04
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Florian Forster [Mon, 29 Jan 2024 16:05:03 +0000 (17:05 +0100)]
Merge pull request #4258 from octo/6/write_redis
[collectd 6] feat: Port the write_redis plugin to collectd 6.
Florian Forster [Mon, 29 Jan 2024 13:15:24 +0000 (14:15 +0100)]
src/daemon/utils_cache.c: Add comment about initializing `ce->values_gauge` for non-gauge types.
Florian Forster [Mon, 29 Jan 2024 10:17:39 +0000 (11:17 +0100)]
Merge pull request #4257 from octo/6/dispatch_metric_family
[collectd 6] fix: Handle metric families with zero metrics gracefully.
Florian Forster [Fri, 26 Jan 2024 13:37:56 +0000 (14:37 +0100)]
src/daemon/plugin.c: Log a debug message when a metric family has no metrics.
Florian Forster [Fri, 26 Jan 2024 12:20:24 +0000 (13:20 +0100)]
ping plugin: Call `plugin_dispatch_metric_family` unconditionally.
Florian Forster [Fri, 26 Jan 2024 12:20:24 +0000 (13:20 +0100)]
irq plugin: Call `plugin_dispatch_metric_family` unconditionally.
Florian Forster [Fri, 26 Jan 2024 12:20:24 +0000 (13:20 +0100)]
ipc plugin: Call `plugin_dispatch_metric_family` unconditionally.
Florian Forster [Fri, 26 Jan 2024 12:20:24 +0000 (13:20 +0100)]
disk plugin: Call `plugin_dispatch_metric_family` unconditionally.
Florian Forster [Fri, 26 Jan 2024 12:20:24 +0000 (13:20 +0100)]
df plugin: Call `plugin_dispatch_metric_family` unconditionally.
Florian Forster [Fri, 26 Jan 2024 12:20:24 +0000 (13:20 +0100)]
chrony plugin: Call `plugin_dispatch_metric_family` unconditionally.
Florian Forster [Fri, 26 Jan 2024 12:13:53 +0000 (13:13 +0100)]
fix: Handle metric families with zero metrics gracefully.
This allows plugins to call `plugin_dispatch_metric_family()` unconditionally.
Florian Forster [Mon, 29 Jan 2024 08:38:32 +0000 (09:38 +0100)]
Update ChangeLog for version 6.0.0.rc1.
Florian Forster [Mon, 29 Jan 2024 07:45:31 +0000 (08:45 +0100)]
src/collectd.conf.pod: Fix typos and an incoherent sentence.
Co-authored-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Mon, 29 Jan 2024 07:32:39 +0000 (08:32 +0100)]
write_redis plugin: Avoid duplication of an int literal.
Florian Forster [Mon, 29 Jan 2024 07:27:36 +0000 (08:27 +0100)]
format_json: Use `STATIC_ARRAY_SIZE` when iterating over a static array.
Florian Forster [Mon, 29 Jan 2024 07:24:18 +0000 (08:24 +0100)]
write_redis plugin: Set the default timeout to one second.
This changes the behavior back to collectd 5 behavior.
collectd bot [Sat, 27 Jan 2024 09:06:52 +0000 (10:06 +0100)]
Auto-Merge pull request #4243 from eero-t/gcc-pedantic
Automatically merged due to "Automerge" label
Eero Tamminen [Fri, 26 Jan 2024 17:51:20 +0000 (19:51 +0200)]
plugin.c: -Wpendantic cast fixes for callback handling
Remove void* _data_ pointer casts with correct function pointer types
and casts. In some cases this allowed dropping the cast completely,
as I used same type for "cf_callback" member as the simplest init()
and shutdown() callbacks.
Only remaining pedantic warning is unfixable, as dlsym() API returns
void* data pointer, instead of function pointer.
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Fri, 26 Jan 2024 17:02:04 +0000 (19:02 +0200)]
vl_lookup_test.c: -Wpedantic lookup_create() arg cast fixes
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Fri, 26 Jan 2024 16:20:41 +0000 (18:20 +0200)]
value_list_test.c: add missing include
For STATIC_ARRAY_SIZE.
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Fri, 26 Jan 2024 16:21:33 +0000 (18:21 +0200)]
utf8_test.c: fix -Wpedantic sign issue
While GCC defaults to char being unsigned, tests would fail when
char is signed, so just declare strings to be uint8_t for utf8.
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Tue, 23 Jan 2024 09:51:42 +0000 (11:51 +0200)]
.gitignore: simplify + add more things to ignore
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Fri, 26 Jan 2024 16:49:06 +0000 (18:49 +0200)]
resource_metrics.c: fix -Wpedantic warnings for casts, option 2
By changing compare function signatures to ones expected by
bsearch() & qsort().
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Fri, 19 Jan 2024 16:31:54 +0000 (18:31 +0200)]
resource_metrics.c: fix -Wpedantic warnings for casts, option 1
By casting function types to ones expected by bsearch() & qsort().
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Fri, 19 Jan 2024 16:09:09 +0000 (18:09 +0200)]
Pass strcmp() to c_avl_create() as function pointer, not data one
Matches how strcmp() is passed to c_avl_create() elsewhere.
Reported by -Wpendantic.
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Eero Tamminen [Fri, 19 Jan 2024 10:35:14 +0000 (12:35 +0200)]
daemon/utils_cache.c: fix -Wpedantic warnings
Semicolons are nice for editor indenting, but redundant ones
are against ISO C. This can be fixed by adding do/while(0) loop
to macro, which requires also making functions otherwise look
like normal functions.
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
Florian Forster [Fri, 26 Jan 2024 15:04:48 +0000 (16:04 +0100)]
Merge pull request #4190 from octo/6/swap
[collectd 6] Swap plugin: Migrate to collectd 6 data structures.
Florian Forster [Fri, 26 Jan 2024 14:04:32 +0000 (15:04 +0100)]
swap plugin: Patch the "total" value through to `swap_append_usage3`.
Eero Tamminen [Fri, 26 Jan 2024 13:05:44 +0000 (14:05 +0100)]
src/collectd.conf.in: Fix default of `ReportBytes`.
Eero Tamminen [Fri, 26 Jan 2024 13:00:57 +0000 (14:00 +0100)]
collectd.conf(5): Improve wording for `ReportBytes`.
Florian Forster [Fri, 26 Jan 2024 12:59:04 +0000 (13:59 +0100)]
swap plugin: Call `plugin_dispatch_metric_family` unconditionally.
Florian Forster [Fri, 26 Jan 2024 12:58:20 +0000 (13:58 +0100)]
swap plugin: Rename `swap_submit_*` to `swap_append_*`.
Florian Forster [Mon, 15 Jan 2024 19:47:17 +0000 (20:47 +0100)]
swap plugin: Report utilization as fraction of one.
Florian Forster [Wed, 10 Jan 2024 21:19:58 +0000 (22:19 +0100)]
swap plugin: Populate the `unit` field.
Florian Forster [Wed, 10 Jan 2024 21:00:03 +0000 (22:00 +0100)]
swap plugin: Add the `ReportUsage` and `ReportUtilization` config options.
Florian Forster [Wed, 27 Dec 2023 09:20:31 +0000 (10:20 +0100)]
swap plugin: Add descriptions to metric families.
Florian Forster [Wed, 27 Dec 2023 09:20:10 +0000 (10:20 +0100)]
swap plugin: Use constants for label names and well-known label values.
Florian Forster [Wed, 27 Dec 2023 09:16:26 +0000 (10:16 +0100)]
swap plugin: Use different metric families for I/O reporting in bytes.
Depending on the "ReportIO" setting, the plugin may emit paging operations
or bytes. Use a different metric family for these two metrics.
This also moves the decision whether or not to report I/O to the
`swap_submit_io`. This fixes a bug on NetBSD where I/O was reported
even if "ReportIO" was set to false.
Florian Forster [Thu, 14 Dec 2023 16:54:09 +0000 (17:54 +0100)]
swap plugin: Group metrics into fewer metric families.
This should align this plugin with the OpenTelemetry semantic conventions:
https://opentelemetry.io/docs/specs/semconv/system/system-metrics/#pagingswap-metrics
Manuel Luis Sanmartín Rozada [Sat, 23 Jan 2021 23:41:12 +0000 (00:41 +0100)]
Declare metric families as an array
Manuel Luis Sanmartín Rozada [Sat, 23 Jan 2021 23:12:27 +0000 (00:12 +0100)]
Fix error message
Manuel Luis Sanmartín Rozada [Wed, 20 Jan 2021 23:17:18 +0000 (00:17 +0100)]
ChangeLog: swap: plugin: migration to v6.0
Florian Forster [Fri, 26 Jan 2024 12:01:05 +0000 (13:01 +0100)]
write_redis plugin: Migrate to RedisTimeSeries.
Florian Forster [Thu, 25 Jan 2024 14:28:55 +0000 (15:28 +0100)]
write_redis plugin: Register metrics and resources only when necessary.
Florian Forster [Wed, 24 Jan 2024 16:29:53 +0000 (17:29 +0100)]
write_redis plugin: Add an intermediary set that maps resources to metrics.
Florian Forster [Wed, 24 Jan 2024 15:19:17 +0000 (16:19 +0100)]
write_redis plugin: Add unit test.
Florian Forster [Wed, 24 Jan 2024 14:36:56 +0000 (15:36 +0100)]
write_redis plugin: Use function pointers for reconnect, disconnect, and execute.
Florian Forster [Wed, 24 Jan 2024 13:53:35 +0000 (14:53 +0100)]
write_redis plugin: Update to work with `metric_family_t`.
Florian Forster [Wed, 24 Jan 2024 10:31:13 +0000 (11:31 +0100)]
format_json: Add the `format_json_metric_identity` function.
Florian Forster [Thu, 25 Jan 2024 14:25:51 +0000 (15:25 +0100)]
utils_cache: Add the `uc_get_first_time` function.
Florian Forster [Thu, 25 Jan 2024 14:15:57 +0000 (15:15 +0100)]
libplugin_mock: Link with the "real" cache.
collectd bot [Wed, 24 Jan 2024 14:32:57 +0000 (15:32 +0100)]
Auto-Merge pull request #4252 from octo/6/df
Automatically merged due to "Automerge" label
Florian Forster [Wed, 24 Jan 2024 14:08:14 +0000 (15:08 +0100)]
fix: df plugin: Fix an array out of bounds crash.
The second argument of the `for` loop always evaluated to true, causing the
code to read past the end of the array.
ChangeLog: df plugin: An out of bounds read, causing segmentation faults, has been fixed.
Florian Forster [Tue, 23 Jan 2024 17:02:29 +0000 (18:02 +0100)]
Bump version to 6.0.0; Update ChangeLog.
collectd bot [Tue, 23 Jan 2024 15:56:17 +0000 (16:56 +0100)]
Auto-Merge pull request #4251 from octo/6/cirrusci
Automatically merged due to "Automerge" label
Florian Forster [Tue, 23 Jan 2024 12:14:02 +0000 (13:14 +0100)]
ci: Remove the "statgrab" task from CirrusCI.
The "statgrab" job builds collectd with the "statgrab" library and then expects
certain plugins to be linked against it. However, since the build runs on
Linux, the plugins are actually using the "native" implementation. The linker,
noticing that the plugin is not referring to any symbol in the statgrab
library, does not actually produce a link, causing the test to fail.
The native implementations provide much richer metrics than the libstatgrab
based implementations, so we'll drop the test.
Florian Forster [Tue, 23 Jan 2024 12:11:12 +0000 (13:11 +0100)]
Merge pull request #4250 from octo/6/cirrusci
.cirrus.yml: statgrab: Print `ldd` of failing plugins. Continue on error.
Florian Forster [Tue, 23 Jan 2024 10:40:01 +0000 (11:40 +0100)]
.cirrus.yml: Verbose make build steps for the statgrab task.
Eero Tamminen [Tue, 23 Jan 2024 10:24:59 +0000 (11:24 +0100)]
.cirrus.yml: `$` is redundant for variable names within `$((...))`
... as shellcheck likes to often remind me.
Florian Forster [Tue, 23 Jan 2024 10:23:06 +0000 (11:23 +0100)]
.cirrus.yml: Use YAML multi-line string that preserves newlines.
Florian Forster [Tue, 23 Jan 2024 09:19:02 +0000 (10:19 +0100)]
.cirrus.yml: Run the non-standard tasks on PRs, too.
Florian Forster [Tue, 23 Jan 2024 09:12:48 +0000 (10:12 +0100)]
.cirrus.yml: statgrab: Print `ldd` of failing plugins. Continue on error.
Florian Forster [Mon, 22 Jan 2024 20:32:21 +0000 (21:32 +0100)]
Merge pull request #4198 from octo/6/import_plugins
[collectd 6] Import plugin changes from `main`.
Florian Forster [Mon, 22 Jan 2024 19:45:44 +0000 (20:45 +0100)]
intel_pmu plugin: Fix formatting of `counter_t` values.
Florian Forster [Wed, 10 Jan 2024 20:49:16 +0000 (21:49 +0100)]
contrib/format.sh src/cpufreq.c
Florian Forster [Tue, 19 Dec 2023 08:51:56 +0000 (09:51 +0100)]
src/vmem.c: Importing changes from `main`.
Changes:
9369ed71450430266ebd7ca410022c2b1b548fb4 vmem: add metrics starting with `pgrefill`
21ffe63374e08d9c3af28a0df33d46e4a908f84e vmem: add "scan" metrics starting with "pgscan_"
25364414f51603e6940fbc1853071e4bc0bb24aa vmem: add "pgscan_"
a8069c10a05d93b6aae0e52b1c6a14e54350fe6f vmem: add metrics start with "pgscan_" in Kernel Linux
Florian Forster [Tue, 19 Dec 2023 08:51:56 +0000 (09:51 +0100)]
src/virt.c: Importing changes from `main`.
Changes:
b4bdc7a8486683533185db34f97fd0f219fdc36b Fix the virt plugin for Openstack wallaby and later use (#4011)
8c781279e9c4789936323670b729f9a979c976db virt: Add hugetlb_ metrics
Florian Forster [Tue, 19 Dec 2023 08:51:56 +0000 (09:51 +0100)]
src/ubi.c: Importing changes from `main`.
Changes:
8c56291be070d7fcb99158157e1d42256dc4930e ubi: add percent evaluation for the bad blocks
d4e3332fc5198504483c0eac2b83b6cc48feb01a ubi: perpartion for percentage evaluation of the bad blocks
Florian Forster [Tue, 19 Dec 2023 08:51:56 +0000 (09:51 +0100)]
src/swap.c: Importing changes from `main`.
Changes:
284f51b21755693cb7cf927f002b26304fad7973 Removed extra call to swap_submit_usage.
Florian Forster [Tue, 19 Dec 2023 08:51:55 +0000 (09:51 +0100)]
src/smart_test.c: Importing changes from `main`.
Changes:
d228c3129c270754b61bf3caae0af36bc7a9c73a Fic smart_test.c for big endian. (#3799)
Florian Forster [Tue, 19 Dec 2023 08:51:55 +0000 (09:51 +0100)]
src/processes.c: Importing changes from `main`.
Changes:
d47b7020743e0ef942401b8cf143a0ac6476f9f5 clang format
71e99e00e21c8181408b590929f856830deac732 Compare both PID and process start time to avoid issues with immediate PID reuse on Linux platform.
9197134e7cd99206900f86f660be2135d028a2ab processes: format array size def in read fork_rate & ctxt
a8b4168ac2237449e3192be3dd2d07ef587fa3e2 processes: fix prints & remove useless comments
2495f75ea8fc4ac0f295b0bdd38cb5eeb1ddd7c4 processes: eliminate hardcoded arraysize in read ctxt & fork_rate
d2626382c6f0c506993ec13c4c2bcd69bad19371 processes: determine if ctxt is enabled before read_sys_ctxt_switch
0c41886ca975ed679e568210caa743af6bb75678 processes: format `/proc/stat` WARNING & ERROR
7a262979f76ebb5868320e09107bc02dc101ff07 processes: use buffer to read /proc/stat once according to procs_running
ffc486a93f980b4d0d859b5f627f859d1877646c processes: remove running++ since we calc it in procs_running later
c3bbd17e13558b15e09f0ecb374e44dfbf3623cd processes: make contextswitches configurable
dfd034032b7c7c8f821774715c0723c42cefd332 Add scalloc() and use it in src/processes.c (#4014)