Битрикс портал — правка ошибки 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 не будет опубликован. Обязательные поля помечены *