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.