Skip to content

Commit 5957e5b

Browse files
committed
refactor(satellite): update cgroup logging and disable cgroup limits
1 parent e550905 commit 5957e5b

File tree

1 file changed

+10
-16
lines changed

1 file changed

+10
-16
lines changed

services/satellite/src/process/nsjail-spawner.ts

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -294,13 +294,15 @@ export class ProcessSpawner {
294294
// Ensure team-specific cache directory exists before mounting
295295
const cacheDir = await this.ensureCacheDirectory(config.team_id, runtime);
296296

297-
// Log cgroup version for diagnostics
297+
// Log cgroup status (disabled due to permissions)
298298
const cgroupVersion = existsSync('/sys/fs/cgroup/cgroup.controllers') ? 'v2' : 'v1';
299299
this.logger.info({
300-
operation: 'cgroup_version_detected',
300+
operation: 'cgroup_status',
301301
version: cgroupVersion,
302+
enabled: false,
303+
reason: 'permissions',
302304
team_id: config.team_id
303-
}, `Detected cgroup ${cgroupVersion}`);
305+
}, `Cgroup ${cgroupVersion} detected but disabled (using rlimit only)`);
304306

305307
this.logger.info({
306308
operation: 'spawn_nsjail',
@@ -309,14 +311,12 @@ export class ProcessSpawner {
309311
runtime: runtime,
310312
cache_dir: cacheDir,
311313
memory_limit_mb: nsjailConfig.memoryLimitMB,
312-
cgroup_mem_max_mb: Math.floor(nsjailConfig.cgroupMemMaxBytes / (1024 * 1024)),
313314
cpu_time_limit_seconds: nsjailConfig.cpuTimeLimitSeconds,
314315
max_processes: nsjailConfig.maxProcesses,
315-
cgroup_pids_max: nsjailConfig.cgroupPidsMax,
316316
max_open_files: nsjailConfig.maxOpenFiles,
317317
max_file_size_mb: nsjailConfig.maxFileSizeMB,
318318
tmpfs_size: nsjailConfig.tmpfsSize
319-
}, `Spawning ${runtime} MCP server with nsjail isolation (cgroup mem: 512MB)`);
319+
}, `Spawning ${runtime} MCP server with nsjail isolation (rlimit only)`);
320320

321321
// Get current user UID and GID (deploystack user in production)
322322
const uid = process.getuid ? process.getuid() : 1000;
@@ -338,11 +338,9 @@ export class ProcessSpawner {
338338
'--rlimit_nofile', String(nsjailConfig.maxOpenFiles), // Max file descriptors
339339
'--rlimit_fsize', String(nsjailConfig.maxFileSizeMB), // Max file size (MB)
340340
'--time_limit', '0', // No wall-clock time limit
341-
// Cgroup v2 limits for precise resource control
342-
'--use_cgroupv2',
343-
'--cgroupv2_mount', '/sys/fs/cgroup',
344-
'--cgroup_mem_max', String(nsjailConfig.cgroupMemMaxBytes), // Physical memory limit (512MB)
345-
'--cgroup_pids_max', String(nsjailConfig.cgroupPidsMax), // Process limit (1000)
341+
// Cgroup limits disabled due to permissions (rlimit provides fallback limits)
342+
// Physical memory limit removed (only virtual memory via rlimit_as: 2048MB)
343+
// Process limit relies on rlimit_nproc: 1000
346344
'-R', '/usr', // Read-only mount: /usr
347345
'-R', '/lib', // Read-only mount: /lib
348346
'-R', '/lib64', // Read-only mount: /lib64
@@ -484,11 +482,7 @@ export class ProcessSpawner {
484482
'--rlimit_nofile', String(nsjailConfig.maxOpenFiles),
485483
'--rlimit_fsize', String(nsjailConfig.maxFileSizeMB),
486484
'--time_limit', String(timeoutSeconds),
487-
// Cgroup v2 limits
488-
'--use_cgroupv2',
489-
'--cgroupv2_mount', '/sys/fs/cgroup',
490-
'--cgroup_mem_max', String(nsjailConfig.cgroupMemMaxBytes),
491-
'--cgroup_pids_max', String(nsjailConfig.cgroupPidsMax),
485+
// Cgroup limits disabled due to permissions (rlimit provides fallback limits)
492486
// Read-only system mounts
493487
'-R', '/usr',
494488
'-R', '/lib',

0 commit comments

Comments
 (0)