Roster push is not handled (#70)
wojciech.kapcia@tigase.net opened 7 years ago

It looks that roster names are ignored (and roster push as well).

Steps to reproduce:

  • add contact in iOS, give it some name;

  • logging to the same account in different application (e.g. Psi);

  • change the contact name there.

Contact is renamed correctly and I receive correct names from the server in the jabber:iq:roster but the change is not reflected in iOS messenger.

Andrzej Wójcik (Tigase) commented 7 years ago

I think that there are two issues:

  • UI of iOS messenger (list of chats and name of chat) were not refreshed with new name of roster entry after rename done on a different XMPP client

  • XMPP server sends roster pushes only to clients connected to the same account on the same cluster node

I've fixed the first issue, but I think that you are experiencing second on. In this case, the server sends pushes only to clients connected to the same cluster node. While it works fine if clients properly support see-other-host@, Psi+ does not support it and as a result, its connection may be established to a different cluster node than connections established by clients with @see-other-host support. Due to that iOS messenger may never receive roster pushes. I've checked and when the client receives them it behaves correctly.

As for not sending roster pushes to clients connected to different cluster nodes, It is a known behavior of Tigase XMPP Server and solution for it is to use clients with a support for see-other-host feature.

wojciech.kapcia@tigase.net commented 7 years ago

First of all - please reassign issues for QA when they are present in the available build so I would know that I can verify them straight away?

Andrzej Wójcik wrote:

I think that there are two issues:

  • UI of iOS messenger (list of chats and name of chat) were not refreshed with new name of roster entry after rename done on a different XMPP client
  • XMPP server sends roster pushes only to clients connected to the same account on the same cluster node

I've fixed the first issue, but I think that you are experiencing second on. In this case, the server sends pushes only to clients connected to the same cluster node. While it works fine if clients properly support see-other-host@, Psi+ does not support it and as a result, its connection may be established to a different cluster node than connections established by clients with @see-other-host support. Due to that iOS messenger may never receive roster pushes. I've checked and when the client receives them it behaves correctly.

With that in mind I've tested it and it worked as you described - updated on particular node resulted in push which refreshed the name.

However there is another slight issue with it - if you update the contact name while the iOS messenger was offline it's also not reflected after re-connection.

As for not sending roster pushes to clients connected to different cluster nodes, It is a known behavior of Tigase XMPP Server and solution for it is to use clients with a support for see-other-host feature.

I wouldn't say it's a solution - rather workaround… I've created #6087 to tackle that.

(However I think that it was working correctly before)

Artur Hefczyc commented 7 years ago

Wojciech Kapcia wrote:

As for not sending roster pushes to clients connected to different cluster nodes, It is a known behavior of Tigase XMPP Server and solution for it is to use clients with a support for see-other-host feature.

I wouldn't say it's a solution - rather workaround… I've created #6087 to tackle that. > (However I think that it was working correctly before)

In my opinion the server behavior is acceptable. "see-other-host" is part of the specification, core RFC. If the client does not support the specification, then the problem is on the client side not the server. So, we do not need to provide full and correct functionality for clients which do not fully support XMPP core spec.

And, on the other hand, the roster implementation to work correctly and efficiently across all cluster nodes for clients connected to different cluster nodes is extremely complicated, at least from my experience of implementing it. Therefore, I am in favor of server logic simplification in this case and require full spec compliance for a fully correct roster handling in cluster mode.

Andrzej Wójcik (Tigase) commented 7 years ago

As I stated in #6078, see-other-host looks to me as an opt-in feature which is not required to be implemented in the xmpp client - at least this is what our server does. See my comments in #6078.

Artur Hefczyc commented 7 years ago

Ok, accepted for resolution as you suggest.

Andrzej Wójcik (Tigase) commented 7 years ago

Wojtek, please check if fix applied in #6087 solves this issue for you.

wojciech.kapcia@tigase.net commented 7 years ago

Works - thank you.

issue 1 of 1
Type
Bug
Priority
Normal
Assignee
RedmineID
6069
Version
Version 2.0
Issue Votes (0)
Watchers (0)
Reference
tigase/_clients/siskin-im#70
Please wait...
Page is in error, reload to recover