Эгея v3576

Вышел четвёртый сервис-пак для Эгеи 2.9, сборка v3576.

В этой сборке исправлен неприятный баг, который мог происходить у тех, кто ранее обновлялся до 2.9 сразу с 2.5 или более ранней Эгеи. В некоторых случаях могло происходить зацикливание сервиса фоновой обработки заметок, который отвечает за индексацию в поиске и трансляцию в «Блоги». Из-за этого поиск работал плохо, а трансляция работала «слишком хорошо»: одни и те же заметки снова, снова и снова отправлялись в качестве новых в «Блоги», что грузило сервер.

Собственно, если бы не последнее, я бы даже не узнал о баге. Замечали, что в последнее время на моём сайте иногда вместо заметок блога открывались страницы с серым лимоном? Это из-за того, что сервер помирал под наплывом тысяч и тысяч уведомлений в «Блоги» от десятка блогов, на которых проявлялся этот баг. Когда я разобрался, что дело в этом, я заблокировал запросы от этих блогов, чтобы мой сайт вздохнул свободно — теперь вроде лимон не появляется. Но это был костыль, а не решение.

Мне удалось связаться с авторами нескольких таких блогов, вместе с ними провести расследование, найти и исправить баг. Они уже обновились до v3576 (и, соответственно, разблокированы).

Обновиться рекомендую тем, кто обновлялся до 2.9 с версии 2.5 или более ранней Эгеи.

Вот сайты, на которых мне известно об этом баге, с авторами которых мне пока связаться не удалось:

  • blog.dfedorov.spb.ru
  • dolnikov.ru
  • maxkuznetsov.ru
  • notes.zavarzin.org
  • olegnizamov.ru
  • yurikarabatov.com

Если верно, что вы обновлялись с 2.5 или более ранней Эгеи, приглашаю вас обновиться до v3576 — у вас заработает поиск и ваш сервер перестанет делать кучу ненужной работы. Скажите, как обновитесь, я вас разблокирую в «Блогах». Но если вдруг предположение об обновлении неверно, пожалуйста, ничего не делайте, а просто свяжитесь со мной! Потому что если так, то значит у вас к проблеме приводит какой-то другой, пока неизвестный мне баг, и я бы хотел это тоже исследовать.

Процедура обновления стандартная: заменить .htaccess, папку /system/ и все подпапки /themes/ новыми.

Свежий дистрибутив — на сайте движка.

Дальше
10 комментариев
Михаил Крюков 2020

Заметил баг, но никак не могу понять при каких условиях срабатывает. Он заключается в том, что счетчик просмотров иногда резко увеличивает количество просмотров. Условно, в моем блоге на статье было вчера просмотров 20, а сегодня заходишь и их 100+. На определенной статье. Но по Яндекс.Метрике видно, что столько людей страницу не открывали. Откуда они взялись — непонятно.

Пока заметил такое 2 раза. Но из-за чего он срабатывает так, я так и не понял. В моем блоге если полистать заметны эти посты с «накрученными просмотрами». Когда в среднем это не больше 30-50 просмотров, то 100+ выделяются.

Александр 2020

Вопрос: в каком файле дистрибутива (или в какой строке и параметре базы данных) хранятся данные счётчиков посещении отдельных постов?

Илья Бирман 2020

В таблице Actions.

Александр 2020

Багрепорт: У меня тэг (div) внесён в список sacred Нисдена. Между тем, на выходе в коде страницы вижу, что Нисден вставляет перевод строки (br /) после закрывающего тега (/div), вследствие чего вёрстка разъезжается.

Александр 2020

Вопрос на тему безопасности. Сейчас пароль-логин пользователя MySQL и название базы отображаются в открытом виде (см. Настройки > Соединение с базой). Таким образом, в случае кражи/подбора пароля к Эгее злоумышленник получит в качестве бонуса ещё и ключи от базы MySQL (в которой, заметим, могут храниться не только заметки Эгеи). Хорошо ли это?

Илья Бирман 2020

Подумаю.

Александр 2020

Вопрос на тему юзабилити. Сейчас диалоговое окно «Сброс пароля» (имя_сайта_/settings/password-reset/) представляет поле для ввода и кнопку «Отправить ссылку на этот адрес» — и не содержит никаких подсказок о том, какой адрес туда нужно вводить.

Если вы пользователь-новичок и впервые попадаете на страницу сброса пароля, такой её дизайн может бросить вас в холодный пот, ибо она провоцирует думать, как будто ссылку для сброса пароля можно отправить на ЧЕЙ УГОДНО имейл. (Последующее сообщение — «Если вы правильно указали имейл, то…» не устраняет это подозрение, кстати.)

В этой связи, не следует ли для большей понятности и пользовательского peace of mind снабдить эту страницу кратким поясняющим текстом? Например, «Введите адрес эл. почты, указанный в настройках Эгеи. (На него придёт ссылка на сброс пароля)»?

Илья Бирман 2020

Наверное, можно подкрутить, но не считаю это достаточно важным пока что.

Александр 2020

После обновления Эгеи до 2.9 (3576) адреса картинок и/или заголовков на некоторых постах начали периодически самопроизвольно прописываться не через доменное имя, а через IP.

Пример: вместо https://ivanpetroff.ru/pictures/image.jpg картинка в посте получает адрес https://46.234.76.42/pictures/image.jpg

При заходе на такую страницу по SSL браузер усматривает нарушение безопасности и не отображает картинки. Читатели мне третий раз жалуются, что картинки в постах не видны.
Что провоцирует этот баг и как его воспроизвести, я не понимаю. Но раньше такого никогда не наблюдалось.

Илья Бирман 2020

А что это за айпи-адрес? Видимо, вы или кто-то когда-то по нему зашли, ссылки в таком виде закешировались и теперь в каких-то местах так и отдаются.

По-хорошему надо настроить, чтобы блог открывался только по одному адресу, а не по нескольким, а с остальных был редирект. Если это почему-то невозможно, пропишите в конфиге $_config[’preferred_domain_name’] = ’ivanpetroff.ru’, это должно помочь.

Александр 2020

А что это за айпи-адрес?

Это мой айпи-адрес, тот, на котором работает мой блог. Сброс кеша не помогает. Насколько я понял, проблема была в конфигах сайтов в Апаче (я удалил один виртуальный домен, а его конфиг остался). Так или иначе, если настройка $_config[’preferred_domain_name’] практически гарантирует правильную выдачу вне зависимости от конфигов Апача, может быть, активировать её по умолчанию, в дистрибутиве?

Илья Бирман 2020

В смысле, как по умолчанию? Её значение — это доменное имя, которое вы хотите использовать. Откуда дистрибутив может его знать?

Александр 2020

> Откуда дистрибутив может его знать?

Я исходил из предположения, что Эгее известно доменное имя сервера, на котором она установлена; в этом случае она могла бы запоминать его в качестве основного (единственно возможного). Если моё предположение неверно — извините за беспокойство, вопрос снят.

Илья Бирман 2020

Так вопрос в том, что такое «сервер, на котором она установлена», если это не «сервер, с которого её открывают»? Если она абсолютно одинаково открывается по нескольким разным адресам, то из каких соображений она должна предпочесть один из них?

Александр 2020

> что такое «сервер, на котором она установлена», если это не «сервер, с которого её открывают»?

Прошу прощения, но смысл этого вопроса от меня решительно ускользает — видимо, потому, что я не программист и не разбираюсь в подобных вещах достаточно глубоко. Правильно ли я понял, что Эгея не может знать доменного имени сервера, на котором она установлена, до тех пор, пока пользователь сам не пропишет это доменное имя в конфиге?

Илья Бирман 2020

Да дело не в том, что Эгея что-то не может определить, а в том, что такого понятия просто нет. Слова «доменное имя сервера, на котором она установлена» не имеют смысла. Эгея установлена на каком-то компьютере, который мы называем сервером. У компьютера нет доменного имени; доменное имя — это штука вообще во внешнем относительно этого компьютера интернете. К одному и тому же компьютеру могут обращаться за сайтами, связанными с тысячами разных доменов.

К компьютеру приходит запрос: «Отдай мне данные по домену ilyabirman.ru; ДНС-сервер сказал, что их надо искать у тебя». И компьютер отдаёт. Если несколько доменов настроены так, что они открывают одни данные с одного компьютера, то почему компьютер должен считать один из них более «правильным», чем другой? Только потому, что кто-то специально так ему сказал считать. Вы пока не сказали. Параметр конфига, про который я писал — как раз чтобы сказать. Но если всё нормально настроено, то это просто не нужно, потому что не возникает ситуации, когда разные адреса ведут на одни и те же данные.

Александр 2020

Разница между доменным именем и сервером, на котором размещены файлы сайта, мне известна (но спасибо за объяснение!). Очевидно, для большей точности в моём вопросе мне следовало использовать определение «доменное имя (имена?), ассоциированное(ые?) с IP-адресом устройства, на котором установлена Эгея». Так правильней?

> почему компьютер должен считать один из них более «правильным», чем другой?
Я не знаю, почему. Ведь не я автор движка, и я понятия не имею о том, каковы его возможности в определении доменных имён. Поэтому спрашиваю автора.

Между тем, из второй части вашего высказывания («…если всё нормально настроено…») я предположил, что проблема может иметь отношение не к настройкам Эгеи, а к внешним настройкам — предположительно, настройкам сервера, на котором она установлена. Так ли это?

Мои книги