Skip to content

Ошибка: sitemap_generator: OutOfRangeException

Посещение гостями сайта вызывает однотипные записи системных ошибок в логах ACP:

 

sitemap_generator: OutOfRangeException

 

При клике появляется такая детализация:

 

#0 [internal function]: IPS\Patterns\_ActiveRecord::load(36)
#1 /server path/system/Content/Item.php(1033): call_user_func(Array, 36)
#2 /server path/applications/blog/sources/Entry/Entry.php(244): IPS\Content\_Item->container()
#3 /server path/applications/core/extensions/core/Sitemap/Content.php(254): IPS\blog\_Entry->canView(Object(IPS\Member))
#4 /server path/system/Sitemap/Sitemap.php(102): IPS\core\extensions\core\Sitemap\_Content->generateSitemap('sitemap_content...', Object(IPS\Sitemap))
#5 /server path/applications/core/tasks/sitemapgenerator.php(35): IPS\_Sitemap->buildNextSitemap()
#6 /server path/system/Task/Task.php(248): IPS\core\tasks\_sitemapgenerator->execute()
#7 /server path/system/Task/Task.php(217): IPS\_Task->run()
#8 /server path/applications/core/interface/task/task.php(60): IPS\_Task->runAndLog()
#9 {main}

 

Что сделать, чтобы это прекратилось? 2830 записей за 30 дней. IC 4.2.6.

Edited by Zero108

Featured Replies

  • Author

Права на файл sitemap.php 644.

Edited by Zero108

Точно можно сказать только после дебага на вашем сервере. Но вообще, в 4.2.6 есть ошибка в /system/Member/Member.php, проявляющаяся с версией интерпретатора php 7.0. и выше.

 

Попробуйте так - найти:

	protected $_groups = NULL;

Заменить на:

	protected $_groups = array();

 

Или можно так:

		if ( count( $this->_groups ) )

Заменить на:

		if ( is_array( $this->_groups ) and count( $this->_groups ) )

  • Author

У меня стоит PHP version 5.6.26 и обновил до Invision Community 4.2.7.

 

Но всё равно попробую, что вы написали.

 

А как-то можно вообще отключить эту функцию создания карты сайта и возникновения соответствующей ошибки? Мне кажется, она вообще ни к чему.

Edited by Zero108

У Вас есть запись блога, находящаяся в блоге с ID 36. А судя по ошибке, такого блога нет.

У меня аналогичная проблема).

#0 [internal function]: IPS\Patterns\_ActiveRecord::load(28)

У меня аналогичная проблема).

Нужно приводить полный стек, а не 1 строку
#0 [internal function]: IPS\Patterns\_ActiveRecord::load(28)
#1 /var/www/test/data/www/test.ru/system/Content/Item.php(1033): call_user_func(Array, 28)
#2 /var/www/test/data/www/test.ru/applications/blog/sources/Entry/Entry.php(244): IPS\Content\_Item->container()
#3 /var/www/test/data/www/test.ru/applications/core/extensions/core/Sitemap/Content.php(254): IPS\blog\_Entry->canView(Object(IPS\Member))
#4 /var/www/test/data/www/test.ru/system/Sitemap/Sitemap.php(102): IPS\core\extensions\core\Sitemap\_Content->generateSitemap('sitemap_content...', Object(IPS\Sitemap))
#5 /var/www/test/data/www/test.ru/applications/core/tasks/sitemapgenerator.php(35): IPS\_Sitemap->buildNextSitemap()
#6 /var/www/test/data/www/test.ru/system/Task/Task.php(248): IPS\core\tasks\_sitemapgenerator->execute()
#7 /var/www/test/data/www/test.ru/system/Task/Task.php(217): IPS\_Task->run()
#8 /var/www/test/data/www/test.ru/system/Dispatcher/Standard.php(311): IPS\_Task->runAndLog()
#9 [internal function]: IPS\Dispatcher\_Standard->__destruct()
#10 {main}

Аналогичная проблема.

Только блог с ID 28

Такого блога вообще нет))) по базе

blog_id от 1 до 34

28 нет, скорее всего удалили в 3.х

SELECT * FROM blog_entries WHERE entry_blog_id=28;

Прикольно. Нашло запись если выполнить запрос

Но пользователя который создал нет)

Нашло запись если выполнить запрос
Отсюда и ошибка. Запись есть, а блога нет.

а как правильно удалить запись?

Спасибо

Я бы изменил ID блога у записи на существующий. А после перешел бы в запись и удалил ее, если не нужна.

Логично). Спасибо.

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.