Ловлю ту же ошибку, увеличиваю память на гиг, получаю все тоже самое.
PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 523800 bytes) in /home/user88/htdocs/bitrix/modules/intranet/classes/general/utils.php on line 1012 [user88@de01 cron]$ php -f importUsers.php PHP Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 523800 bytes) in /home/user88/htdocs/bitrix/modules/intranet/classes/general/utils.php on line 1012 [user88@de01 cron]$ php -f importUsers.php PHP Fatal error: Allowed memory size of 3196059648 bytes exhausted (tried to allocate 523800 bytes) in /home/user88/htdocs/bitrix/modules/intranet/classes/general/utils.php on line 1012
Пока не понял в чем может быть дело. Код корректно отрабатывал ранее
Денис, у меня проблема оказалось в том, что пользователю создалось огромное количество (более 10 000) записей в БД (в таблице календаря). Следовательно php не хватало сил все это дело выгрузить. После чистки БД, все ошибки ушли.
У меня идет xml импорт по cron, около 5к пользователей и около 800 депортаментов. Отловил, что при добавлении/обновлении пользователя, дергаются обработчики и метод GetDepartmentManager рекурсивно отжирает всю память. Пока разбираюсь в чем может быть дело. Вообще похоже, что что-то засорилось. Импорт прогонял множество раз, ранее работало, ничего не правилось.
Денис Клoкoв, по нашему опыту - календарь является слабым местом в портале.
При наличии большого количества событий у конкретного пользователя - может вылетать именно у этого пользователя.
Удалять события лучше через api, потому как структура хранения событий разнесена по 2 таблицы (если я правильно помню) - это таблица хранения событий и таблица с правами на действия с событиями в календаре
При этом, удаляя через api - убедитесь, что событие физически удаляется, по умолчанию оно остается в таблице и просто помечается как удаленное.
При общении с разработчиками, мы услышали такой тезис: "портал не предназначен на такое количество событий". На вопрос о лимитах событий - ответа мы не получили.
Возможно, имеет смысл пересобрать окружение, а именно - вынести роль сервера базы данных из сервера приложений. Но что-то мне подсказывает, что это может не решить задачу, а решение возможно кроется в самой логике выборки событий, скорее всего она не оптимальная (без лимитов и прочее).
Эм Си Арт - комплексное внедрение и отличная поддержка порталов Битрикс24 http://www.mcart.ru