Skip to content

opencode: hardcoded 4Gi memory limit causes OOMKilled / silent session deaths (manifest declares limitedMemory 24Gi) #3395

Description

@bayerhazard

Summary

The OpenCode app container ships with a hardcoded resources.limits.memory: 4Gi in opencode/templates/opencode.yaml, while the app's own OlaresManifest.yaml declares limitedMemory: 24Gi / limitedCpu: 13. On an Olares One (96 GB RAM) this 4 GiB cap is routinely exceeded by memory-heavy subprocesses that OpenCode legitimately runs inside its sessions (dev servers, vitest --max-old-space-size=8192, etc.), producing OOMKilled restarts that silently kill every active session.

Evidence (live diagnosis, 2026-08-08)

  • Pod opencode container: reason: OOMKilled, exitCode: 13731 restarts in 23 h.
  • cgroup memory reached 4.26 GiB (over the 4 GiB limit) during a npx vitest --max-old-space-size=8192 run, ~40 s before the next OOM kill.
  • Every restart kills all in-flight sessions "silently"; reloading afterwards fails with envoy upstream connect error or disconnect/reset before headers ... Connection refused until the container is back up.
  • Hardcoded block in opencode/templates/opencode.yaml:
resources:
  limits:
    cpu: "4"
    memory: 4Gi
  requests:
    cpu: 200m
    memory: 1Gi

vs. the manifest:

requiredMemory: 2304Mi
limitedMemory: 24Gi
limitedCpu: 13

Suggested fix

  • Raise the hardcoded container memory limit (e.g. 8–12 GiB) to match the declared limitedMemory: 24Gi, and/or
  • Make the resource limits configurable via values.yaml / an env var instead of hardcoding them.

Workaround (applied successfully)

Patching the Deployment to limits.memory: 12Gi resolves the OOM loop (0 restarts after rollout).

Environment

  • Olares app: opencode 1.0.18 (image beclab/opencode:1.18.9.1), source market.olares
  • Olares One, 96 GB RAM / 24 cores, NVIDIA RTX 5090

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions