Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

PG_57014 1С:Предприятие и СУБД

PostgreSQL Error 57014: query_canceled — Statement Timeout и Lock Timeout

Обновлено: 25.08.2026 · Официальная документация ↗
  • Ошибка выполнения: ERROR: canceling statement due to statement timeout (SQLSTATE 57014).
  • Прерывание формирования тяжелых отчетов или регламентных заданий в 1С.
  • Ошибки canceling statement due to lock timeout при попытке захвата монопольных блокировок.

1. Проверка текущих лимитов таймаутов в СУБД

SHOW statement_timeout;
SHOW lock_timeout;
SHOW idle_in_transaction_session_timeout;

2. Анализ отмененных запросов в логах

grep "canceling statement due to statement timeout" /var/log/postgresql/*.log

3. Корректировка statement_timeout для конкретного пользователя или базы

Не отключайте таймаут глобально во всем кластере, меняйте его адресно:

-- Увеличение лимита для регламентного пользователя 1C
ALTER USER usr1cv8 SET statement_timeout = '30min';

-- Отключение таймаута для сессии резервного копирования
SET statement_timeout = 0;

4. Настройка idle_in_transaction_session_timeout

Для предотвращения зависания открытых транзакций, удерживающих блокировки:

ALTER SYSTEM SET idle_in_transaction_session_timeout = '10min';
SELECT pg_reload_conf();
💡 Практика специалистов: Если ошибка 57014 возникает регулярно на операциях ALTER TABLE, установите небольшой lock_timeout (например, 5s) и повторяйте операцию в цикле, чтобы не парализовать работу OLTP-пользователей.

Частые вопросы (FAQ)

В каких случаях возвращается код ошибки 57014?

Код 57014 возвращается при срабатывании statement_timeout, lock_timeout, ручной отмене запроса пользователем (Ctrl+C, pg_cancel_backend) или разрыве соединения пулером.

Почему не рекомендуется ставить statement_timeout = 0 на всем сервере?

Нулевой таймаут позволяет некорректным неоптимизированным запросам выполняться бесконечно, утилизируя 100% CPU и удерживая блокировки от других пользователей.

Как 1С:Предприятие управляет statement_timeout?

Платформа 1С может переопределять параметры сессии при подключении. Настраивайте таймауты как на уровне СУБД, так и в настройках регламентных заданий в конфигураторе.

В чем разница между statement_timeout и lock_timeout?

statement_timeout отсчитывает полное время выполнения запроса, а lock_timeout ограничивает только время ожидания освобождения нужной таблицы/строки перед началом выполнения.

Полезные материалы
Рекомендуем