Документация

Проверка размера пакета базы

Запись журнала хранит старые и новые значения полей и стек вызова. Для сущности с длинным описанием или большим набором свойств запись выходит объёмной — и упирается в настройку базы max_allowed_packet: она ограничивает размер одного запроса.

Запрос сверх ограничения база отклоняет. Без проверки это выглядело бы как молчаливая потеря записи: изменение произошло, а в журнале его нет.

Что делает настройка

При включённой проверке модуль сравнивает размер запроса с ограничением базы до записи и, если места не хватает, сообщает об этом вместо тихой потери.

Выключают её редко — например, когда точно известно, что ограничение базы велико, а лишняя проверка на каждой записи не нужна.

Что делать при срабатывании

Три пути, от простого к сложному:

  1. Уменьшить стек. «Лимит трассировки стека» с 100 до 20 заметно уменьшает запись, а для разбора обычно хватает и двадцати шагов.
  2. Исключить тяжёлые поля при регистрации сущности — длинное описание товара в журнале нужно редко.
  3. Поднять max_allowed_packet в настройках базы, если объёмные значения действительно нужны в журнале.

Первое решает случай почти всегда: стек длиннее самих значений чаще, чем кажется.