Skip to content
This repository has been archived by the owner on Mar 14, 2023. It is now read-only.

Транспорт при старте спамит последним сообщением #223

Open
Oreolek opened this issue Feb 1, 2019 · 14 comments
Labels

Comments

@Oreolek
Copy link

Oreolek commented Feb 1, 2019

Неважно, был ли транспорт закрыт нормально или через kill.

При подключении он начинает повторять последнее сообщение в конференции 5-6 раз. Останавливается только когда ВК присылает капчу.

@mrDoctorWho
Copy link
Owner

mrDoctorWho commented Feb 1, 2019

А можно логи транспорта? Ещё интересует версия.

@Oreolek
Copy link
Author

Oreolek commented Feb 1, 2019

Версия git master

Лог (без токена): [edit]

@mrDoctorWho
Copy link
Owner

Транспорт сообщает, что не смог создать групчат. Почему?

@Oreolek
Copy link
Author

Oreolek commented Feb 1, 2019

Вероятно (но не проверено), что дело в новой фиче новой версии prosody 0.11.x:

https://prosody.im/doc/modules/mod_muc#tombstones

По умолчанию prosody теперь не позволяет создать комнату, если она была недавно удалена. Чтобы это выключить, нужно указать muc_tombstones = false.

@mrDoctorWho mrDoctorWho changed the title Транспорт при старте спами последним сообщением Транспорт при старте спамит последним сообщением Feb 1, 2019
@mrDoctorWho
Copy link
Owner

mrDoctorWho commented Feb 7, 2019

Удалось проверить? Работает без tombstones?

Кстати, транспорт вполне безопасно можно сделать MUC-админом и тогда он наверняка сможет ходить по конференциям даже с muc_tombstones. А ещё это избавит от багов в случаях, когда кто-то создал конференцию раньше него самого.

@Oreolek
Copy link
Author

Oreolek commented Feb 7, 2019

В общем, это какая-то настройка на сервере. Пока непонятно, что именно, но сервер отказывает транспорту в создании комнат.

@Oreolek
Copy link
Author

Oreolek commented Mar 19, 2019

Вроде починилось. Старые комнаты надо удалять вручную (выбрать модуль conferences в поиске сервисов -> команды -> destroy rooms)

Текущие настройки:

muc_tombstones = false;
muc_room_locking = false;

@Oreolek
Copy link
Author

Oreolek commented Mar 20, 2019

А, не, не починилось. Снова идёт. Попробую больше инфы собрать.

@Oreolek Oreolek reopened this Mar 20, 2019
@Ledarium
Copy link

Ledarium commented May 7, 2019

Плюсую. Также происходит в конференциях, когда кто-то присылает сообщение в ответ на несколько моих. Выглядит все так:

мое сообщение 1
мое сообщение 2
мое сообщение 3
< входящее сообщение
мое сообщение 1
мое сообщение 2
мое сообщение 3

Если убить vk4xmpp в момент этого бага, то при следующем старте он снова спамит
Сервер ejabberd 18.01

В логах есть warning:vk4xmpp: User wasn't found in the database and no token or password was given

@mrDoctorWho
Copy link
Owner

@Ledarium
В этом issue рассматривается косяк именно с сообщениями в конференции. Связано это с тем, что транспорт не получает подтверждения о создании конференции и пытается создать её снова. А создание включает в себя отправку последних сообщений.

Можно попробовать посмотреть DEBUG-логи.

@mrDoctorWho
Copy link
Owner

@Oreolek какие новости?

@Oreolek
Copy link
Author

Oreolek commented May 31, 2019

Пока никаких, нет времени на тесты. Временно не пользуюсь.

@Oreolek
Copy link
Author

Oreolek commented Aug 6, 2019

Общий вопрос: почему создание комнаты включает отправку последних сообщений? По XEP, создание - это именно запрос presence. На запрос не ответили - создать комнату не получилось. Из стандарта, кстати, убрали совместимость с Groupchat.

@mrDoctorWho
Copy link
Owner

@Oreolek извиняюсь за долгий ответ, но лучше позже, чем никогда.

Я не очень понимаю вопрос. Транспорт отправляет сообщения только если конференцию удалось создать. Не понимаю, что может удивлять в том, что транспорт отправляет сообщения в созданную им конференцию.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants