Перейти к содержимому
Русский язык для Invision Community 5

Долго начались создаваться новые темы.

Доброго времени суток.

Имеется вопрос по IPB 3.2.2

 

Ранее было все нормально вроеде.

Сегодня переставил время на сервере с консоли, на правильное, ранее отображалось не правильно.

 

Зайдя на форум, оказалось, что очень мммееедддлллееенннооо начали создаваться темы. Причем быстрый ответ нормально работает.

Включил display_errors на сервере, попробовал создать опять тему, вылезла такая бяка:

 

Warning: Illegal string offset 'html' in /var/www/vipmas/data/www/pcworld.su/masteram/cache/skin_cache/cacheid_1/skin_topic.php on line 1174

 

Полез туда, нашел эту строку:

 

{$displayData['poll_data']['html']}

 

Я так понимаю, строк отвечает за вывод даты в топике.

Скажите мне пожалуйста, каким боком эта ошибка касается даты? Дату правильно выставил: Вто Янв 15 00:14:42 UTC 2013

скопировал с консоли...

 

Как решить вопрос?

 

Только что перепроверил.

Быстрый ответ также не работает во вновь созданной теме.

 

Если ответить в созданной ранее теме, проблема таже... Создает, но очень долго.

Рекомендованные сообщения

  • Автор

Добавлю

Ошибка вылазит не только при создании темы.

Она вылазит на всех страницах, если открыть любую тему...

 

Короче говоря мозг поломал, не могу понять, что эта ошибка значит.

Сам не разберусь, нужна Ваша помощь.

Ошибка даты не касается. Она появляется потому, что $displayData['poll_data'] строка а не массив (array), отсюда и ошибка при обращении к строке как к ассоциативному массиву $displayData['poll_data']['html'].

http://community.invisionpower.com/resources/bugs.html/_/ip-board/php-warning-illegal-string-offset-html-in-publicoutputphp1739-evald-r36026

 

Открыть /admin/applications/forums/modules_public/forums/topics.php

Найти:

$poll_data	= ( $topicData['poll_state'] ) ? $this->_generatePollOutput() : '';

Заменить на:

$poll_data = ( $topicData['poll_state'] ) ? $this->_generatePollOutput() : array( 'html' => '', 'poll' => '' );

 

А так же относительно долгой загрузки при создания темы Ошибка при создании темы

Ээээ добавлю свой вопрос. У меня почему то долго стали удаляться сообщения.

Хотя скажем создание темы и отправка сообщения идёт происходит быстро.

@Haktar, у ТС-а хоть какие-то логи были, а вам на чем предлагаете погадать? У вас там вроде свой сервачок, включите хотябы логи медленных запросов, и попытайтесь удалить сообщение.

Haktar, у ТС-а хоть какие-то логи были, а вам на чем предлагаете погадать? У вас там вроде свой сервачок, включите хотябы логи медленных запросов, и попытайтесь удалить сообщение.

Включил. Вот что выдало:

# Query_time: 13.859236 Lock_time: 0.000017 Rows_sent: 0 Rows_examined: 759896

use testor1;

SET timestamp=1358289445;

UPDATE imperiall_posts SET post_parent=0 WHERE post_parent IN (107223,107226,108686);

БД большая, поэтому уже начинаются такие тормоза. К тому же, я смотрю что на post_parent нет индекса. При таком количестве записей не удивительно что он долго ищет. Надо будет разобраться зачем нужна это поле.

 

Попробуйте добавить индекс

 

CREATE INDEX post_parent ON imperiall_posts (post_parent);

 

ПС. Запрос может выполнятся некоторое время. Если есть возможность лучше выполнить из ssh

Попробуйте добавить индекс

Спасибо, помогло!!!

БД большая, поэтому уже начинаются такие тормоза

Таблица сообщений имеет почти миллион записей. Может стоит ещё какие то индексы создать?

Таблица сообщений имеет почти миллион записей.

Ну в логе пишет что было проверено ~760K записей. Чрезмерное количество бессмысленных индексов тоже не хорошо.

Чрезмерное количество бессмысленных индексов тоже не хорошо.

В таблице сообщений такие индексы присутствуют:

PRIMARY

author_id

post_date

topic_id

post_key

ip_address

post_parent

 

Это много или мало?

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.