SShortSingh.
Back to feed

Docker Exit Code 137 Explained: Causes, Diagnosis, and Fixes for OOMKilled

0
·1 views

Docker containers displaying exit code 137 have been forcibly terminated via SIGKILL, most commonly triggered by the Linux kernel's Out-Of-Memory (OOM) killer when a container exceeds its memory limit or the host runs out of RAM. The exit code itself combines the shell convention of 128 plus signal number 9 (SIGKILL), and can also result from a timed-out docker stop command, making the two causes visually identical in docker ps output. Developers can confirm OOM involvement by running docker inspect and checking the OOMKilled flag, or by reviewing kernel logs via dmesg or journalctl for explicit kill entries. Common root causes include absent memory limits, undersized cgroup caps, genuine memory leaks, and runtime environments like older JVMs or Node.js that size their heap based on total host RAM rather than container limits. Addressing the issue typically starts with monitoring live memory usage via docker stats and progressively applying fixes such as setting appropriate memory limits and configuring runtime-aware heap settings.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

JetBrains Plugin I18n Support Plus Brings Full i18next Key Management Into the IDE

A JetBrains IDE plugin called I18n Support Plus aims to eliminate the manual effort of managing internationalization keys in React i18next projects. The plugin links translation keys directly to their JSON or YAML files, enabling features like color-coded key status, Ctrl+Click navigation, and autocomplete suggestions drawn from real translation files. Developers can view all locale translations side by side via hover tooltips and see inline translated values through inlay hints or code folding. A dedicated tool window offers tree and table views, an orphan-key scanner, a keys synchronizer to propagate missing entries across locales, and per-locale completion statistics. The tool also supports extracting hardcoded strings into translation keys and flags issues such as empty or duplicate values through built-in code inspections.

0
ProgrammingDEV Community ·

Why Autonomous AI Agents Demand a New Kind of Audit Trail

As AI systems evolve from simple chatbots into autonomous agents that execute API calls, query databases, and make operational decisions, traditional flat logging tools have become inadequate for tracking their behavior. Unlike deterministic software, AI agents operate in recursive loops where standard logs capture only what happened, not the reasoning behind each decision. Regulatory frameworks such as the EU AI Act, SOC 2, ISO 42001, and CCPA now require organizations to maintain comprehensive, causally linked audit records for automated decision-making systems. A compliant audit trail for AI agents must use parent-child span identifiers to reconstruct the full execution tree, linking each user instruction to every downstream tool call and model reasoning step. Architectures like Volidator address additional challenges such as clock drift in distributed environments by implementing Lamport Logical Clocks to ensure reliable event ordering across asynchronous, edge-computed systems.

0
ProgrammingDEV Community ·

Developer Builds 8-Category Ledger and Symlink System to Tame 40+ Side Projects

A developer managing over 40 side projects — spanning web apps, Chrome extensions, iOS apps, and AI tooling — created a structured classification system to eliminate the chaos of scattered directories. The system uses a single markdown ledger file, eight fixed project categories, and symbolic links rather than physically moving folders. Physical relocation is avoided because tools like Vercel, launchd, and git worktrees store absolute paths that break when directories are moved. Instead, symlinks under a central folder point to real project directories, keeping all metadata intact. The approach ensures project status, production URLs, and monetization details are instantly accessible from one place.

0
ProgrammingDEV Community ·

Why Event Schemas and Contracts Are Critical in Event-Driven Architecture

Modern cloud frameworks have made it easy to build event-driven systems, but designing events that remain reliable over time is far more challenging than simply publishing them. Most production failures in such systems stem not from messaging infrastructure but from poor decisions around event schema design, versioning, and consumer compatibility. Once an event is published, it effectively becomes a public API, and removing or changing fields can silently break downstream services that the original producer may not even be aware of. Unlike REST APIs, event consumers are often invisible to producers and may belong to entirely separate teams built long after the original system was deployed. This article series explores best practices for treating events as formal contracts to keep event-driven architectures maintainable and resilient as they scale.

Docker Exit Code 137 Explained: Causes, Diagnosis, and Fixes for OOMKilled · ShortSingh