Сообщаем об ошибках phpBB 3.3.x разработчикам

Проблемы с установкой или работой phpBB 3.3.x? Получите помощь здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17120
Стаж: 19 лет 8 месяцев
Откуда: Красноярск
Благодарил (а): 574 раза
Поблагодарили: 1757 раз

Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение rxu »

Об ошибках, выявленных в работе phpBB 3.3 Proteus, сообщаем в этой теме.
Ошибками является некорректная работа ядра phpBB, подтвержденная на последней актуальной версии phpBB, требующая устранения в коде ядра, и не связанная с работой расширений, сторонних стилей оформления, неверной работой серверного оборудования или серверного софта, а также с некорректными действиями администратора.
Запросы поддержки также не размещаются в данной теме.
Изображение
Аватара пользователя
Kuskow
phpBB 1.4.4
Сообщения: 195
Стаж: 9 лет 8 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 17 раз
Поблагодарили: 15 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение Kuskow »

Возникло только в одной теме после удаления двух последних сообщений в корзину.
Показывается только у модератора, то есть, у того, кто видит, что сообщения удалены.
Получается, самое последнее сообщение - единственное на странице. И предпоследнее в теме - последнее на предпоследней странице.
Полистал тему - ошибка появляется на тех страницах, где последнее сообщение на странице удалено в корзину. Если это удалённое сообщение восстановить - ошибка исчезает.

Пробовал:
- перенести любое сообщение из этой темы в эту же темы (чтобы индексы пересчитались)
Не помогло - ошибка не исчезла.

Пробовал:
- удалять сообщения этих пользователей в других темах
- удалять последнее и предпоследнее сообщения в других темах
Ошибку в других темах повторить не удалось.

В теме 34621 сообщений, включая удалённые в корзину. 34353 сообщений, не считая удалённых. Тема не самая большая на форуме - есть и гораздо длиннее, но в них повторить такую ошибку не удалось.
Ссылку на тему тут не публикую, поскольку у пользователей ошибку не видно. Могу дать модераторский доступ к своему форуму.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17120
Стаж: 19 лет 8 месяцев
Откуда: Красноярск
Благодарил (а): 574 раза
Поблагодарили: 1757 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение rxu »

Kuskow, повторить не удалось. По тексту ошибки выглядит так, как будто пользователь с user_id равным 48 удалил пост, но пользователя с user_id равным 48 нет в таблице phpbb_users.
Изображение
Аватара пользователя
Kuskow
phpBB 1.4.4
Сообщения: 195
Стаж: 9 лет 8 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 17 раз
Поблагодарили: 15 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение Kuskow »

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

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение rxu »

Ошибку получается повторить, если в таблицу posts в строке удаленного в корзину сообщения принудительно вписать в поле post_delete_user идентификатор несуществующего пользователя (любое число, user_id с которым не существует в таблице пользователей).
Проверьте свой, если всё-таки пользователь 48, или нет.
Изображение
Аватара пользователя
Kuskow
phpBB 1.4.4
Сообщения: 195
Стаж: 9 лет 8 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 17 раз
Поблагодарили: 15 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение Kuskow »

Пользователь 48 точно существует - это я. Номер помню с самого начала. Первые пользователи вообще запоминаются по номерам.
Screenshot 2026-01-28 11.43.36.png

Теперь понятно, где корень этой ошибки. Она существует ооооочень давно. Более 12 лет точно. Иногда в удалённых сообщениях не показывается, кто удалил сообщение - вместо этого пишется "Гость". И в логах тоже так же записывается.
Screenshot (38).png

Ещё даже не было у меня этого форума (я был модератором на другом форуме) - и там тоже было так же, хоть там и не было даже удаления в корзину - сообщения удалялись безвозвратно сразу. И кто-то объяснял, почему так происходит, но я не вникал.

Отправлено спустя 25 минут 5 секунд:
И вот, как только после этого последнего удалённого сообщения появилось ещё одно, удалённое сообщение перестало быть последним, и ошибка пропала, и удаляющий теперь виден:
Screenshot (39).png
Отправлено спустя 11 минут 21 секунду:
valdos писал(а): 22.07.2015 11:25Иногда бывает, после удаления поста модератором, в уделенном посте пишется "Гость" удалил сообщение автора "имя автора".
Если перейти в профиль "Гость", то переход осуществляется в правильный профиль модератора.
Вопрос снимается. Помогла простая чистка Кэша.
Чистка кэша не помогла. Вопрос остаётся. Я наблюдаю эту проблему с 2013 года. За 12 лет ничего не поменялось.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17120
Стаж: 19 лет 8 месяцев
Откуда: Красноярск
Благодарил (а): 574 раза
Поблагодарили: 1757 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение rxu »

Kuskow писал(а): Вчера 10:22 За 12 лет ничего не поменялось.
Потому, что надежно повторить проблему и выявить причину не удается.
Изображение
Аватара пользователя
Kuskow
phpBB 1.4.4
Сообщения: 195
Стаж: 9 лет 8 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 17 раз
Поблагодарили: 15 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение Kuskow »

А сама эта 1870 строка разве не вызывает сомнений?

Код: Выделить всё

$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 строку - когда удаливший модератор первый раз встретился на странице именно в удалённом сообщении. То есть, когда информацию о пользователе-удалителе нужно занести в кэш. То есть, когда удаливший сообщение модератор ещё не занесён в кэш по другим поводам.
rxu писал(а): Вчера 8:17 повторить не удалось
Нужно, чтобы модератор зашёл на страницу, в которой есть сообщение мягко удалённое другим модератором. И при этом на странице нет от этого удалившего модератора:
- сообщений;
- благодарностей;
- Сейчас этот форум просматривают.

Отправлено спустя 8 минут 4 секунды:
rxu писал(а): Вчера 9:31идентификатор несуществующего пользователя
Да, только не пользователя, а поста.
В общем, эта ошибка возникает тогда, когда соблюдаются два условия:
1. До обработки удалённого сообщения в предыдущих на странице сообщениях не встречалось упоминания пользователя, который удалил это сообщение (48). То есть, он не был автором предыдущих сообщений, он не ставил лайк за предыдущие сообщения.
2. В списке удалённых сообщений, присутствующих на странице нет такого, у которого номер сообщения совпадает с номером удалившего пользователя (модератора) - в моём случае 48. Значит, нет на странице сообщения p=48.

Вот как-то так.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17120
Стаж: 19 лет 8 месяцев
Откуда: Красноярск
Благодарил (а): 574 раза
Поблагодарили: 1757 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение rxu »

Kuskow, ничего из этого не вызывает никаких сомнений, этот код прекрасно работает везде в 99,99% случаев.
Надо найти тот один сценарий, при котором он не работает.

Отправлено спустя 28 секунд:
Теоретизировать бессмысленно. Вот как-то так.
Изображение
Аватара пользователя
Kuskow
phpBB 1.4.4
Сообщения: 195
Стаж: 9 лет 8 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 17 раз
Поблагодарили: 15 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение Kuskow »

То есть, выполняется эта строка с такими значениями:

Код: Выделить всё

$user_cache[48] = $post_delete_list[48];
$user_cache[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
phpBB Guru
Сообщения: 17120
Стаж: 19 лет 8 месяцев
Откуда: Красноярск
Благодарил (а): 574 раза
Поблагодарили: 1757 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение rxu »

Kuskow писал(а): Вчера 19:22 То есть, выполняется эта строка с такими значениями:
rxu писал(а): Вчера 19:20 Теоретизировать бессмысленно.
Получится найти, как воспроизвести - пишите.
Изображение
Аватара пользователя
Kuskow
phpBB 1.4.4
Сообщения: 195
Стаж: 9 лет 8 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 17 раз
Поблагодарили: 15 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение Kuskow »

Да-да, уже пишу:
rxu писал(а): Вчера 19:20 Надо найти тот один сценарий, при котором он не работает.
Так вот же он в условии на строчку выше (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']]) - если ранее информация об удалившем пользователе не попала в кэш
rxu писал(а): Вчера 8:17 повторить не удалось
Модератор заходит на страницу, где есть сообщение, удалённое другим модератором. И больше никаких упоминаний об этом удалившем модераторе нет на этой странице, то есть, он:
- не участвовал в обсуждении;
- не заходил на эту страницу в течение 5 минут;
- не ставил лайки;
- не был процитирован другими пользователями.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17120
Стаж: 19 лет 8 месяцев
Откуда: Красноярск
Благодарил (а): 574 раза
Поблагодарили: 1757 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение rxu »

Kuskow писал(а): Вчера 19:33 Модератор заходит на страницу, где есть сообщение, удалённое другим модератором. И больше никаких упоминаний об этом удалившем модераторе нет
rxu писал(а): Вчера 8:17 повторить не удалось
Всё работает корректно.
Изображение

Вернуться в «Поддержка phpBB 3.3.x»