Сбор дампов падений (Core Dumps) для процессов 1С в Linux: ragent, rmngr, rphost
- Процессы
rphostилиrmngrвнезапно исчезают из списка процессов без сообщений в технологическом журнале. - Аварийное завершение сеансов пользователей с ошибкой
Сеанс работы завершен администраторомилиСоединение с сервером прервано. - Необходимость расследования Segmentation Fault (SIGSEGV) и отправки дампов в техподдержку 1С.
- Ядро Linux блокирует запись дампов из-за ограничений
ulimit -c 0.
1. Архитектура генерации дампов процессов 1С
При возникновении критической ошибки в C++ коде платформы процесс падает с сигналом SIGSEGV или SIGABRT. Для локализации причин падения ядро ОС должно записать полный слепок памяти упавшего процесса (Core Dump) на диск.
2. Снятие системных лимитов ядра и systemd
Отредактируйте unit-файл службы 1С (/etc/systemd/system/srv1cv8-*.service или override-файл):
[Service]
LimitCORE=infinity
LimitNOFILE=655363. Настройка шаблона сохранения дампов ядра
Создайте конфигурационный файл /etc/sysctl.d/99-coredump.conf:
# Шаблон имени дампа: /var/dumps/core-имя_процесса-pid-время
kernel.core_pattern = /var/dumps/core-%e-pid_%p-time_%t
kernel.core_uses_pid = 1
fs.suid_dumpable = 2Примените параметры:
sudo sysctl --system4. Подготовка каталога дампов и прав
sudo mkdir -p /var/dumps
sudo chmod 777 /var/dumps
sudo chown usr1cv8:grp1cv8 /var/dumps5. Перезапуск службы 1С и проверка генерации дампа
sudo systemctl daemon-reload
sudo systemctl restart srv1cv8-8.3.23.1865@default.service
# Тестовая посылка сигнала сброса дампа на рабочий процесс (только на staging)
# kill -SIGSEGV <PID_RPHOST>6. Первичный анализ дампа в GDB
# Запуск GDB с бинарником 1С и файлом дампа
gdb /opt/1cv8/x86_64/8.3.23.1865/rphost /var/dumps/core-rphost-pid_12345-time_1680000000
# Получение стека вызовов упавшего потока:
(gdb) bt full
(gdb) quit Частые вопросы (FAQ)
Сколько места на диске занимает Core Dump процесса rphost?
Размер дампа равен объему виртуальной оперативной памяти, занятой процессором rphost на момент падения (может достигать от 2 GB до десятков гигабайт).
Что означает параметр sysctl fs.suid_dumpable = 2?
Он разрешает генерацию дампов памяти для процессов, которые сменили привилегии пользователя или были запущены службой, что критично для сервиса usr1cv8.
Как настроить интеграцию с systemd-coredump?
Установите пакет systemd-coredump и задайте в sysctl: kernel.core_pattern = |/lib/systemd/systemd-coredump %P %u %g %s %t %c %h. Управление дампами будет выполняться через coredumpctl.
Какие файлы нужны разработчикам 1С для расследования падения?
Файл дампа ядра (core dump), технологический журнал 1С за период падения с включенными событиями EXCP/CRASH и точный номер релиза платформы.