tigase / beagle-im

(M) XMPP client for macOS based on TigaseSwift XMPP library
GNU General Public License v3.0
182 stars 21 forks source link

The messages is not showed in chat window & history #74

Open leoblum opened 3 years ago

leoblum commented 3 years ago

Describe the bug Hi. I found a bug that not all messages from conversation is displayed in chat window and does not appear in history. But when I open BeagleIM XML console I see that messages is coming to me.

To Reproduce Have no idea hot to reproduce, but I often see that bug.

I use BeagleIM 4.1 (110) on MacOS 11.1. Originally install BeagleIm from brew cask. When I recognise that bug I reinstall app from AppStore – but that is not fixed the bug.

I and my contact have accounts on jabber.ru server.

Desktop (please complete the following information):

At the and I attach the log from BeagleIM XML Console


<!--   2021-01-17T16:07:54Z   >>>>   -->
<a xmlns='urn:xmpp:sm:3' h='118'/>

<!--   2021-01-17T16:07:59Z   >>>>   -->
<message type='chat' id='48C0DD1C-2765-42C0-8EA9-3829BA48345A' to='USER@jabber.ru'>
<body>MY MESSAGE</body>
<active xmlns='http://jabber.org/protocol/chatstates'/>
<origin-id xmlns='urn:xmpp:sid:0' id='48C0DD1C-2765-42C0-8EA9-3829BA48345A'/>
<request xmlns='urn:xmpp:receipts'/>
</message>

<!--   2021-01-17T16:07:59Z   >>>>   -->
<r xmlns='urn:xmpp:sm:3'/>

<!--   2021-01-17T16:07:59Z   <<<<   -->
<a xmlns='urn:xmpp:sm:3' h='24'/>

<!--   2021-01-17T16:07:59Z   <<<<   -->
<message id='48C0DD1C-2765-42C0-8EA9-3829BA48345A' to='MY_ACCOUNT@jabber.ru/4952533020737110028' xml:lang='ru' from='USER@jabber.ru/Lab'>
<received id='48C0DD1C-2765-42C0-8EA9-3829BA48345A' xmlns='urn:xmpp:receipts'/>
</message>

<!--   2021-01-17T16:07:59Z   <<<<   -->
<r xmlns='urn:xmpp:sm:3'/>

<!--   2021-01-17T16:07:59Z   >>>>   -->
<a h='119' xmlns='urn:xmpp:sm:3'/>

<!--   2021-01-17T16:08:10Z   >>>>   -->

<!--   2021-01-17T16:08:49Z   <<<<   -->
<message xml:lang='ru' to='MY_ACCOUNT@jabber.ru/4952533020737110028' from='USER@jabber.ru/Lab' type='chat' id='mir_5301'>
<composing xmlns='http://jabber.org/protocol/chatstates'/>
</message>

<!--   2021-01-17T16:08:49Z   <<<<   -->
<r xmlns='urn:xmpp:sm:3'/>

<!--   2021-01-17T16:08:49Z   >>>>   -->
<a xmlns='urn:xmpp:sm:3' h='120'/>

<!--   THIS MESSAGE IS NOT SHOWED IN CHAT AND HISTORY WINDOW -->
<!--   2021-01-17T16:09:02Z   <<<<   -->
<message id='mir_5304' to='MY_ACCOUNT@jabber.ru/4952533020737110028' from='USER@jabber.ru/Lab' xml:lang='ru' type='chat'>
<body>HIS MESSAGE</body>
<active xmlns='http://jabber.org/protocol/chatstates'/>
</message>

<!--   2021-01-17T16:09:02Z   <<<<   -->
<r xmlns='urn:xmpp:sm:3'/>
leoblum commented 3 years ago

I found the bug. That is mistake of my colleague jabber client. Hi is using shitty russian soft called Miranda, which lost id numeration and start to send new messages with already exists message ids.

leoblum commented 3 years ago

Hm..

I tried to check what message.id means in jabber protocol and don't found how exactly it should work.

So check please, because its possible that message.id should be unique only in current session with jabber server.

hantu85 commented 3 years ago

message.id is not specified to be unique and a long time ago it could even be not sent but it is recommended to be unique globally or at least within the current stream.

Normally BeagleIM uses MAM to deduplicate incoming messages. However, your server does not support MAM and in this case, BeagleIM uses message.id for deduplication of incoming messages. Due to that those messages are not saved as we've not encountered any client which would send a non-randomized value as a message id attribute.

We will look into this issue in the future version, but it is going to be a large version so this will not be a fast fix.

hantu85 commented 2 years ago

In the latest beta build there is now a workaround to save and display messages with duplicated message id attribute.