Сломалась таблица menu_links. Кто виноват, и что делать?

Главные вкладки

Аватар пользователя vectoroc vectoroc 9 сентября 2009 в 15:23

Недавно по неизвестным мне причинам сайт перестал работать с сообщением out of memory
Естественно любой друпаллер скажет "памяти добавь, ты что не знаешь, как прожорлив друпал?", но я начал разбираться.

Выяснилось, что выпадает в функции _menu_tree_data. При этом до вызова этой функции потребление памяти 14М, а из функции уже вываливается с нехваткой памяти (~32M).
В _menu_tree_data берутся данные из menu_links, полез смотреть эту таблицу и выяснил, что каждый link_path этой таблице повторяется 10 раз. 1 выглядит наиболее вменяемо, а остальные неправильные, на мой взгляд.

Вот пример записи:

 
admin/build/block/configure    2  17  25  64  0  0  0  0  0  0
admin/build/block/configure    476  0  0  0  0  0  0  0  0  0

Слева links_path, далее идут числа p1/2/3/... p1 - id первого участка меню (т.е. admin/build/block/configure ), далее id для admin/build/block/configure и т.д..
Из 10 копий каждого пункта меню только у первого правильные значения для pN, у остальных p1 > 400 , а p2/3+.. = 0.

В итоге сделал дамп таблицы (в атаче) и truncate. Это помогло, но надолго ли?
Кто-нибудь сталкивался с таким?

ВложениеРазмер
Иконка пакета menu_links.sql_.zip63.04 КБ