I'm having an issue where the presence information of a member in a shared roster group isn't available to its displayed group until the user logs out and logs back in.
For example, let's say both user-A and user-B are online. Now two shared roster groups are created using the web admin-- srg-A and srg-B. srg-A has user-A as its member and srg-B as its displayed group. srg-B has user-B as member and srg-A as displayed group. At this point, user-A cannot see the presence information for user-B and vice versa.
Now if I log out both user-A and user-B and re-login, user-A can see user-B as online and user-B can see user-A as online. Is there a way to send the presence without having to re-login? I see this issue with 2.1.x and current master using either external or internal auth. I'm running erlang R16B01, and Python 2.6.6 on CentOS 6.4. Has anybody else had this issue? I occasionally do get it to work without having to re-login, but it's pretty unreliable.
I have also observed this issue. It seems that the point of Shared Roster Groups is to provide administrative "matchmaking" between logged-in instances to build rosters. It seems wrong to have to log long-standing instances out who are communicating with others just to get a presence update.
This problem was fixed time ago in the pull request #99, which is now included in ejabberd master branch.