Prevent the entire c4_cloud_command systemd service from being killed on OOM
Details
| Detail name | Value |
|---|---|
| Changelog Number | 22601 |
| Type | Bug |
| Status | Resolved |
| Affected Versions | Exasol 8.0.0 |
| Fix Versions | C4 4.19.8, Exasol 2025.1.0, C4 4.27.0 |
| Resolution Date | 2025-06-03 |
Description
When a node ran out of RAM, the systemd OOM killer would kill the entire c4_cloud_command service, including all of its subprocesses, instead of killing just the offending subprocess.
Workaround
Edit the c4_cloud_command service file at “/etc/systemd/system/c4_cloud_command.service” (in rootless “$HOME/.config/systemd/user/c4_cloud_command.service”) and add OOMPolicy=continue field in the [Service] section, and then restart the service.
Fix
c4 now creates the c4_cloud_command service file with the OOMPolicy=continue set. This setting makes systemd OOM killer to only kill a single subprocess that is holding the most amount of RAM, instead of killing the entire c4_cloud_command service.
The service files will be updated and OOMPolicy=continue will be inserted in them during a deployment update with c4 update cluster.