n1ro°
RU

Ошибки · Решение

Docker exit code 139: что означает и как исправить

Docker показывает статус процесса внутри контейнера. В Bash соглашение 128+N означает завершение сигналом N; 139 = 128+11 и часто указывает на SIGSEGV.

Редакция N1RO · Проверено

Короткий ответ

Docker exit code 139 — статус процесса контейнера; в Bash 139 часто получается как 128 + SIGSEGV(11), но сам Docker не назначает 139 отдельное специальное значение.

Что означает ошибка

Docker показывает статус процесса внутри контейнера. В Bash соглашение 128+N означает завершение сигналом N; 139 = 128+11 и часто указывает на SIGSEGV.

Возможные причины

  • Нативный процесс получил segmentation fault.
  • Несовместимая библиотека/архитектура приводит к падению нативного кода.
  • Повреждение памяти проявляется только под контейнерной нагрузкой или конкретным input.

Что проверить

  • Проверьте docker inspect .State.ExitCode и stderr/core dump процесса.
  • Подтвердите SIGSEGV по kernel log/core dump, а не только по числу 139.
  • Сравните архитектуру image, native libraries и host/runtime.

Безопасные шаги

  1. Соберите stack trace из core dump или sanitizer build.
  2. Исправьте нативный crash/ABI mismatch вместо перезапуска контейнера по кругу.
  3. Если статус 139 возвращён приложением намеренно, не трактуйте его как сигнал без дополнительного подтверждения.

Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.

Когда нужен сервис

  • Если Docker exit code 139 повторяется после локализации стадии сбоя, приложите docker inspect, stderr и параметры запуска владельцу приложения/runtime.

Похожие ошибки

  • /errors/docker-exit-code-125/
  • /errors/docker-exit-code-127/

Что учитывать

Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.

Официальный источник

Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.