Перейти к основному содержанию

Nginx — worker process аварийно завершаются с сигналом 11 (SIGSEGV) Segmentation Fault

Nginx

Сегодня словили баг на Nginx в Ubuntu Server.  Никто ничего не трогал, вдруг посыпались ошибки в /var/log/nginx/error.log:

worker process 2993649 exited on signal 11 (core dumped)
nginx

Разработчики не смогли стандартными способами исправить проблему, передали дело админам.

И тут я уловил нечто знакомое. Когда что-то само ломается, особенно после 6 утра, часто причиной может послужить пакет unattended-upgrades. Этот гадский пакет по ночам устанавливает обновления куда не надо их устанавливать и перезапускает службы, которые нельзя перезапускать.

С одной стороны, обновляться нужно. С другой стороны, не все обновления одинаково полезны.

Проверяем гипотезу. Проверим что ошибки посыпались с утра. Лог /var/log/nginx/error.log.1 пуст, ошибки начались в "2026/06/09 06:47:13".

Смотрим /var/log/apt/history.log и видим:

Start-Date: 2026-06-09  06:47:11
Commandline: /usr/bin/unattended-upgrade
Upgrade: libnginx-mod-http-image-filter:amd64 (1.24.0-2ubuntu7.9, 1.24.0-2ubuntu7.10), nginx:amd64 (1.24.0-2ubuntu7.9, 1.24.0-2ubuntu7.10),
nginx-common:amd64 (1.24.0-2ubuntu7.9, 1.24.0-2ubuntu7.10), libnginx-mod-stream-geoip:amd64 (1.24.0-2ubuntu7.9, 1.24.0-2ubuntu7.10), libng
inx-mod-http-geoip:amd64 (1.24.0-2ubuntu7.9, 1.24.0-2ubuntu7.10), libnginx-mod-http-xslt-filter:amd64 (1.24.0-2ubuntu7.9, 1.24.0-2ubuntu7.1
0), libnginx-mod-mail:amd64 (1.24.0-2ubuntu7.9, 1.24.0-2ubuntu7.10), libnginx-mod-http-perl:amd64 (1.24.0-2ubuntu7.9, 1.24.0-2ubuntu7.10),
libnginx-mod-stream:amd64 (1.24.0-2ubuntu7.9, 1.24.0-2ubuntu7.10), nginx-extras:amd64 (1.24.0-2ubuntu7.9, 1.24.0-2ubuntu7.10)
End-Date: 2026-06-09  06:47:15

Обновились модули nginx, что послужило причиной ошибок. Сигнал 11 (core dumped) — это классическая ошибка сегментации (segmentation fault), означающая, что процесс пытался обратиться к памяти, которая ему не принадлежит. Это часто случается из-за несовместимости версий или багов в новой сборке.

Нужно откатить.

Для начала сносим пакет unattended-upgrades.

Ubuntu server — отключаем unattended upgrades

sudo apt-get -y remove unattended-upgrades 
sudo systemctl stop apt-daily.timer 
sudo systemctl disable apt-daily.timer 
sudo systemctl stop apt-daily-upgrade.timer
sudo systemctl disable apt-daily-upgrade.timer
sudo systemctl disable apt-daily.service 
sudo systemctl daemon-reload

Из лога видно, что обновились следующие пакеты: nginx, nginx-common, nginx-extras, libnginx-mod-http-image-filter, libnginx-mod-stream-geoip, libnginx-mod-http-geoip, libnginx-mod-http-xslt-filter, libnginx-mod-mail, libnginx-mod-http-perl, libnginx-mod-stream. Откатим.

sudo apt install --allow-downgrades nginx=1.24.0-2ubuntu7.9 nginx-common=1.24.0-2ubuntu7.9 nginx-extras=1.24.0-2ubuntu7.9 libnginx-mod-http-image-filter=1.24.0-2ubuntu7.9 libnginx-mod-stream-geoip=1.24.0-2ubuntu7.9 libnginx-mod-http-geoip=1.24.0-2ubuntu7.9 libnginx-mod-http-xslt-filter=1.24.0-2ubuntu7.9 libnginx-mod-mail=1.24.0-2ubuntu7.9 libnginx-mod-http-perl=1.24.0-2ubuntu7.9 libnginx-mod-stream=1.24.0-2ubuntu7.9

Пакеты уже могут быть недоступны:

E: Version '1.24.0-2ubuntu7.9' for 'nginx' was not found
E: Version '1.24.0-2ubuntu7.9' for 'nginx-common' was not found
E: Version '1.24.0-2ubuntu7.9' for 'nginx-extras' was not found
E: Version '1.24.0-2ubuntu7.9' for 'libnginx-mod-http-image-filter' was not found
E: Version '1.24.0-2ubuntu7.9' for 'libnginx-mod-stream-geoip' was not found
E: Version '1.24.0-2ubuntu7.9' for 'libnginx-mod-http-geoip' was not found
E: Version '1.24.0-2ubuntu7.9' for 'libnginx-mod-http-xslt-filter' was not found
E: Version '1.24.0-2ubuntu7.9' for 'libnginx-mod-mail' was not found
E: Version '1.24.0-2ubuntu7.9' for 'libnginx-mod-http-perl' was not found
E: Version '1.24.0-2ubuntu7.9' for 'libnginx-mod-stream' was not found

Пробуем другую версию:

sudo apt install --allow-downgrades \
 nginx=1.24.0-2ubuntu7 \
 nginx-common=1.24.0-2ubuntu7 \
 nginx-extras=1.24.0-2ubuntu7 \
 libnginx-mod-http-geoip=1.24.0-2ubuntu7 \
 libnginx-mod-http-image-filter=1.24.0-2ubuntu7 \
 libnginx-mod-http-perl=1.24.0-2ubuntu7 \
 libnginx-mod-http-xslt-filter=1.24.0-2ubuntu7 \
 libnginx-mod-mail=1.24.0-2ubuntu7 \
 libnginx-mod-stream=1.24.0-2ubuntu7 \
 libnginx-mod-stream-geoip=1.24.0-2ubuntu7

Версия откатилась. Перезапускаем nginx и радуемся.

Ссылки

https://nginx.org/en/linux_packages.html#Ubuntu

Теги

 

Похожие материалы

Заглушка для технических работ на Nginx

Иногда сайт нужно вывести из эксплуатации для проведения технических работ. Это может быть процесс резервного копирования, обновление, изменение конфигурации, перенос данных, или восстановление.

Теги

Nginx — включаем постквантовую криптографию в Ubuntu 22

Постквантовая криптография (Post-Quantum Cryptography) — 'новые математические алгоритмы шифрования, которые останутся устойчивыми даже когда появятся достаточно мощные квантовые компьютеры.