Сообщаем об ошибках phpBB 3.3.x разработчикам
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
rxu
- phpBB Guru

- Сообщения: 17120
- Стаж: 19 лет 8 месяцев
- Откуда: Красноярск
- Благодарил (а): 574 раза
- Поблагодарили: 1757 раз
Сообщаем об ошибках phpBB 3.3.x разработчикам
Об ошибках, выявленных в работе phpBB 3.3 Proteus, сообщаем в этой теме.
Ошибками является некорректная работа ядра phpBB, подтвержденная на последней актуальной версии phpBB, требующая устранения в коде ядра, и не связанная с работой расширений, сторонних стилей оформления, неверной работой серверного оборудования или серверного софта, а также с некорректными действиями администратора.
Запросы поддержки также не размещаются в данной теме.
Ошибками является некорректная работа ядра phpBB, подтвержденная на последней актуальной версии phpBB, требующая устранения в коде ядра, и не связанная с работой расширений, сторонних стилей оформления, неверной работой серверного оборудования или серверного софта, а также с некорректными действиями администратора.
Запросы поддержки также не размещаются в данной теме.
-
Kuskow
- phpBB 1.4.4
- Сообщения: 195
- Стаж: 9 лет 8 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 17 раз
- Поблагодарили: 15 раз
Re: Сообщаем об ошибках phpBB 3.3.x разработчикам
Возникло только в одной теме после удаления двух последних сообщений в корзину.
Показывается только у модератора, то есть, у того, кто видит, что сообщения удалены.
Получается, самое последнее сообщение - единственное на странице. И предпоследнее в теме - последнее на предпоследней странице.
Полистал тему - ошибка появляется на тех страницах, где последнее сообщение на странице удалено в корзину. Если это удалённое сообщение восстановить - ошибка исчезает.
Пробовал:
- перенести любое сообщение из этой темы в эту же темы (чтобы индексы пересчитались)
Не помогло - ошибка не исчезла.
Пробовал:
- удалять сообщения этих пользователей в других темах
- удалять последнее и предпоследнее сообщения в других темах
Ошибку в других темах повторить не удалось.
В теме 34621 сообщений, включая удалённые в корзину. 34353 сообщений, не считая удалённых. Тема не самая большая на форуме - есть и гораздо длиннее, но в них повторить такую ошибку не удалось.
Ссылку на тему тут не публикую, поскольку у пользователей ошибку не видно. Могу дать модераторский доступ к своему форуму.
Показывается только у модератора, то есть, у того, кто видит, что сообщения удалены.
Получается, самое последнее сообщение - единственное на странице. И предпоследнее в теме - последнее на предпоследней странице.
Полистал тему - ошибка появляется на тех страницах, где последнее сообщение на странице удалено в корзину. Если это удалённое сообщение восстановить - ошибка исчезает.
Пробовал:
- перенести любое сообщение из этой темы в эту же темы (чтобы индексы пересчитались)
Не помогло - ошибка не исчезла.
Пробовал:
- удалять сообщения этих пользователей в других темах
- удалять последнее и предпоследнее сообщения в других темах
Ошибку в других темах повторить не удалось.
В теме 34621 сообщений, включая удалённые в корзину. 34353 сообщений, не считая удалённых. Тема не самая большая на форуме - есть и гораздо длиннее, но в них повторить такую ошибку не удалось.
Ссылку на тему тут не публикую, поскольку у пользователей ошибку не видно. Могу дать модераторский доступ к своему форуму.
-
rxu
- phpBB Guru

- Сообщения: 17120
- Стаж: 19 лет 8 месяцев
- Откуда: Красноярск
- Благодарил (а): 574 раза
- Поблагодарили: 1757 раз
Re: Сообщаем об ошибках phpBB 3.3.x разработчикам
Kuskow, повторить не удалось. По тексту ошибки выглядит так, как будто пользователь с
user_id равным 48 удалил пост, но пользователя с user_id равным 48 нет в таблице phpbb_users.-
Kuskow
- phpBB 1.4.4
- Сообщения: 195
- Стаж: 9 лет 8 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 17 раз
- Поблагодарили: 15 раз
Re: Сообщаем об ошибках phpBB 3.3.x разработчикам
Да, всё так и было - именно он (то есть, я) и удалил.rxu писал(а): Вчера 8:17 По тексту ошибки выглядит так, как будто пользователь сuser_idравным48удалил пост
Ага, понятно. Но очень странно. Потому что этот пользователь точно есть, это я - первый зарегистрировавшийся на форуме пользователь, он же модератор, он же администратор. Пофиль показывается нормально. Не удалялся никогда.
-
rxu
- phpBB Guru

- Сообщения: 17120
- Стаж: 19 лет 8 месяцев
- Откуда: Красноярск
- Благодарил (а): 574 раза
- Поблагодарили: 1757 раз
Re: Сообщаем об ошибках phpBB 3.3.x разработчикам
Ошибку получается повторить, если в таблицу posts в строке удаленного в корзину сообщения принудительно вписать в поле
Проверьте свой, если всё-таки пользователь 48, или нет.
post_delete_user идентификатор несуществующего пользователя (любое число, user_id с которым не существует в таблице пользователей).Проверьте свой, если всё-таки пользователь 48, или нет.
-
Kuskow
- phpBB 1.4.4
- Сообщения: 195
- Стаж: 9 лет 8 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 17 раз
- Поблагодарили: 15 раз
Re: Сообщаем об ошибках phpBB 3.3.x разработчикам
Пользователь 48 точно существует - это я. Номер помню с самого начала. Первые пользователи вообще запоминаются по номерам.
Теперь понятно, где корень этой ошибки. Она существует ооооочень давно. Более 12 лет точно. Иногда в удалённых сообщениях не показывается, кто удалил сообщение - вместо этого пишется "Гость". И в логах тоже так же записывается.
Ещё даже не было у меня этого форума (я был модератором на другом форуме) - и там тоже было так же, хоть там и не было даже удаления в корзину - сообщения удалялись безвозвратно сразу. И кто-то объяснял, почему так происходит, но я не вникал.
Отправлено спустя 25 минут 5 секунд:
И вот, как только после этого последнего удалённого сообщения появилось ещё одно, удалённое сообщение перестало быть последним, и ошибка пропала, и удаляющий теперь виден:
Отправлено спустя 11 минут 21 секунду:
Теперь понятно, где корень этой ошибки. Она существует ооооочень давно. Более 12 лет точно. Иногда в удалённых сообщениях не показывается, кто удалил сообщение - вместо этого пишется "Гость". И в логах тоже так же записывается.
Ещё даже не было у меня этого форума (я был модератором на другом форуме) - и там тоже было так же, хоть там и не было даже удаления в корзину - сообщения удалялись безвозвратно сразу. И кто-то объяснял, почему так происходит, но я не вникал.
Отправлено спустя 25 минут 5 секунд:
И вот, как только после этого последнего удалённого сообщения появилось ещё одно, удалённое сообщение перестало быть последним, и ошибка пропала, и удаляющий теперь виден:
Отправлено спустя 11 минут 21 секунду:
Чистка кэша не помогла. Вопрос остаётся. Я наблюдаю эту проблему с 2013 года. За 12 лет ничего не поменялось.valdos писал(а): 22.07.2015 11:25Иногда бывает, после удаления поста модератором, в уделенном посте пишется "Гость" удалил сообщение автора "имя автора".
Если перейти в профиль "Гость", то переход осуществляется в правильный профиль модератора.
Вопрос снимается. Помогла простая чистка Кэша.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
rxu
- phpBB Guru

- Сообщения: 17120
- Стаж: 19 лет 8 месяцев
- Откуда: Красноярск
- Благодарил (а): 574 раза
- Поблагодарили: 1757 раз
Re: Сообщаем об ошибках phpBB 3.3.x разработчикам
Потому, что надежно повторить проблему и выявить причину не удается.
-
Kuskow
- phpBB 1.4.4
- Сообщения: 195
- Стаж: 9 лет 8 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 17 раз
- Поблагодарили: 15 раз
Re: Сообщаем об ошибках phpBB 3.3.x разработчикам
А сама эта 1870 строка разве не вызывает сомнений?
То есть, судя по названиям:
$user_cache - список пользователей
$post_delete_list - список сообщений
Получается, вместо данных о пользователе запихиваем данные о сообщени (из списка мягких в список тёплых). Или нет?
Да и вот это уже должно вызвать сомнение, как мне кажется:
Из списка сообщений берём элемент по номеру пользователя?
Отправлено спустя 10 минут 12 секунд:
А когда мы попадаем на эту 1870 строку - когда удаливший модератор первый раз встретился на странице именно в удалённом сообщении. То есть, когда информацию о пользователе-удалителе нужно занести в кэш. То есть, когда удаливший сообщение модератор ещё не занесён в кэш по другим поводам.
- сообщений;
- благодарностей;
- Сейчас этот форум просматривают.
Отправлено спустя 8 минут 4 секунды:
В общем, эта ошибка возникает тогда, когда соблюдаются два условия:
1. До обработки удалённого сообщения в предыдущих на странице сообщениях не встречалось упоминания пользователя, который удалил это сообщение (48). То есть, он не был автором предыдущих сообщений, он не ставил лайк за предыдущие сообщения.
2. В списке удалённых сообщений, присутствующих на странице нет такого, у которого номер сообщения совпадает с номером удалившего пользователя (модератора) - в моём случае 48. Значит, нет на странице сообщения
Вот как-то так.
Код: Выделить всё
$user_cache[$row['post_delete_user']] = $post_delete_list[$row['post_delete_user']];$user_cache - список пользователей
$post_delete_list - список сообщений
Получается, вместо данных о пользователе запихиваем данные о сообщени (из списка мягких в список тёплых). Или нет?
Да и вот это уже должно вызвать сомнение, как мне кажется:
Код: Выделить всё
$post_delete_list[$row['post_delete_user']]Отправлено спустя 10 минут 12 секунд:
А когда мы попадаем на эту 1870 строку - когда удаливший модератор первый раз встретился на странице именно в удалённом сообщении. То есть, когда информацию о пользователе-удалителе нужно занести в кэш. То есть, когда удаливший сообщение модератор ещё не занесён в кэш по другим поводам.
Нужно, чтобы модератор зашёл на страницу, в которой есть сообщение мягко удалённое другим модератором. И при этом на странице нет от этого удалившего модератора:
- сообщений;
- благодарностей;
- Сейчас этот форум просматривают.
Отправлено спустя 8 минут 4 секунды:
Да, только не пользователя, а поста.
В общем, эта ошибка возникает тогда, когда соблюдаются два условия:
1. До обработки удалённого сообщения в предыдущих на странице сообщениях не встречалось упоминания пользователя, который удалил это сообщение (48). То есть, он не был автором предыдущих сообщений, он не ставил лайк за предыдущие сообщения.
2. В списке удалённых сообщений, присутствующих на странице нет такого, у которого номер сообщения совпадает с номером удалившего пользователя (модератора) - в моём случае 48. Значит, нет на странице сообщения
p=48.Вот как-то так.
-
rxu
- phpBB Guru

- Сообщения: 17120
- Стаж: 19 лет 8 месяцев
- Откуда: Красноярск
- Благодарил (а): 574 раза
- Поблагодарили: 1757 раз
Re: Сообщаем об ошибках phpBB 3.3.x разработчикам
Kuskow, ничего из этого не вызывает никаких сомнений, этот код прекрасно работает везде в 99,99% случаев.
Надо найти тот один сценарий, при котором он не работает.
Отправлено спустя 28 секунд:
Теоретизировать бессмысленно. Вот как-то так.
Надо найти тот один сценарий, при котором он не работает.
Отправлено спустя 28 секунд:
Теоретизировать бессмысленно. Вот как-то так.
-
Kuskow
- phpBB 1.4.4
- Сообщения: 195
- Стаж: 9 лет 8 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 17 раз
- Поблагодарили: 15 раз
Re: Сообщаем об ошибках phpBB 3.3.x разработчикам
То есть, выполняется эта строка с такими значениями:
$user_cache[48] - сорок восьмой пользователь
$post_delete_list[48] - сорок восьмое сообщение
Код: Выделить всё
$user_cache[48] = $post_delete_list[48];https://www.phpbbguru.net/community/memberlist.php?mode=viewprofile&u=48$post_delete_list[48] - сорок восьмое сообщение
https://www.phpbbguru.net/community/viewtopic.php?p=48#p48-
rxu
- phpBB Guru

- Сообщения: 17120
- Стаж: 19 лет 8 месяцев
- Откуда: Красноярск
- Благодарил (а): 574 раза
- Поблагодарили: 1757 раз
-
Kuskow
- phpBB 1.4.4
- Сообщения: 195
- Стаж: 9 лет 8 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 17 раз
- Поблагодарили: 15 раз
Re: Сообщаем об ошибках phpBB 3.3.x разработчикам
Да-да, уже пишу:
Условие соблюдается при одновременном соблюдении двух условий:
1)
2)
- не участвовал в обсуждении;
- не заходил на эту страницу в течение 5 минут;
- не ставил лайки;
- не был процитирован другими пользователями.
Так вот же он в условии на строчку выше (1968):
Код: Выделить всё
if ($row['post_delete_user'] && !isset($user_cache[$row['post_delete_user']]))1)
if $row['post_delete_user'] - если сообщение мягко удалено (помечено как удалённое, но существует в базе)2)
if !isset($user_cache[$row['post_delete_user']]) - если ранее информация об удалившем пользователе не попала в кэшМодератор заходит на страницу, где есть сообщение, удалённое другим модератором. И больше никаких упоминаний об этом удалившем модераторе нет на этой странице, то есть, он:
- не участвовал в обсуждении;
- не заходил на эту страницу в течение 5 минут;
- не ставил лайки;
- не был процитирован другими пользователями.
-
rxu
- phpBB Guru

- Сообщения: 17120
- Стаж: 19 лет 8 месяцев
- Откуда: Красноярск
- Благодарил (а): 574 раза
- Поблагодарили: 1757 раз
Re: Сообщаем об ошибках phpBB 3.3.x разработчикам
Kuskow писал(а): Вчера 19:33 Модератор заходит на страницу, где есть сообщение, удалённое другим модератором. И больше никаких упоминаний об этом удалившем модераторе нет
Всё работает корректно.

