Битрикс портал – правка ошибки MySQL query error! Got a packet bigger than ‘max_allowed_packet’ bytes


Кейс от клиента:

При авторизации на портале Битрикс 24 (коробка) ошибка
MySQL query error! Got a packet bigger than ‘max_allowed_packet’ bytes
(весь текст не буду выкладывать – смысл понятен)

Если решать в лоб и быстро, то поможет

/etc/my.cnf
max_allowed_packet = 32M
service mysqld restart

решил разобраться, в чём собственно дело

видно, что на update в таблицу b_option идёт очень большое “тело”

нашел эту запись, посмотрел содержимое – массив с НЕУНИКАЛЬНЫМИ записями

небольшим скритом фиксим это дело прямо в php консоли

из 90к записей остаётся 147

далее в исходниках Битрика нашел интересное место в файле

www/bitrix/modules/socialnetwork/lib/item/workgroup.php

получили массив, добавили значение (но не посмотрели, вдруг оно уже присутствует) – фактически получаем постоянно раздуваемый массив

пришлось кастомизировать исходник Битрикса (а что делать?) – в Битрикс тоже отписал о этом “косяке”

сам фикс

По идее такие огрехи при Code Review другим программистом должны “вылавливаться”.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *