From 65d2f3999f589e4d985a9340d0b944394b9bc03b Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Wed, 27 May 2026 14:18:35 +0000 Subject: [PATCH] ci: set SKIP_CAPACITY on gen2 jobs to fit class RAM gen2 CircleCI machines enforce virtual memory limits at the cgroup level. The Skip runtime's default SKIP_CAPACITY of 16 GB (palloc.c) fails to mmap on any class with <16 GB RAM, producing "ERROR (MAP FAILED): Cannot allocate memory" early in the job. Observed on skipruntime/large.gen2 in PR #1245 and on an earlier skdb-wasm/large.gen2 run that died at 61 s. gen1 tolerated the same 16 GB virtual mmap because only RSS was enforced and the mmap is lazy. Set SKIP_CAPACITY explicitly per gen2 job, leaving ~25% RAM headroom for OS and tooling: check-ts medium.gen2 (4 GB) -> 3G skdb large.gen2 (8 GB) -> 6G skdb-wasm large.gen2 (8 GB) -> 6G skipruntime large.gen2 (8 GB)* -> 6G compiler xlarge.gen2 (16 GB) -> 12G * postgres + kafka sidecars get their own RAM allocation Co-Authored-By: Claude Opus 4.7 (1M context) --- .circleci/base.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.circleci/base.yml b/.circleci/base.yml index 870001432..6bb5ef963 100644 --- a/.circleci/base.yml +++ b/.circleci/base.yml @@ -37,6 +37,8 @@ jobs: docker: - image: skiplabs/skip:latest resource_class: medium.gen2 + environment: + SKIP_CAPACITY: 3G steps: - custom-checkout: submodules: true @@ -63,6 +65,8 @@ jobs: docker: - image: skiplabs/skiplang:latest resource_class: xlarge.gen2 + environment: + SKIP_CAPACITY: 12G steps: - custom-checkout: submodules: true @@ -80,6 +84,8 @@ jobs: docker: - image: skiplabs/skdb-base:latest resource_class: large.gen2 + environment: + SKIP_CAPACITY: 6G steps: - custom-checkout: submodules: true @@ -92,6 +98,8 @@ jobs: docker: - image: skiplabs/skdb-base:latest resource_class: large.gen2 + environment: + SKIP_CAPACITY: 6G steps: - custom-checkout: submodules: true @@ -160,6 +168,8 @@ jobs: KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 resource_class: large.gen2 + environment: + SKIP_CAPACITY: 6G steps: - custom-checkout: submodules: true