Asymmetric subscription status between OpenFire users

I’ve been working on understanding users, groups, and rosters in OpenFire. If I understand correctly, the subscription status between two users (viewable in the user roster admin panel) ought to always be symmetric: e.g. if Alice has a subscription to Bob, then Bob has a subscription from Alice.

However, it is very easy to use shared groups to construct situations where this is not the case. If you create a group G, enable contact list sharing for G, then add Alice and Bob to G, you wind up in a situation where Alice has a subscription to Bob of type both and Bob has a subscription to Alice of type to. This seems wrong; if either one of these is both, then shouldn’t both be both? I am especially convinced it should act this way since this is how it works if you set G to enable contact list sharing AFTER adding Alice and Bob as members.


Steps to reproduce in the admin panel:

  1. create a group G

  2. create users A and B

  3. look at rosters for A and B (both are empty)

  4. set G to “enable contact list group sharing” but NOT “share group with additional users”

  5. add A and B to G

  6. observe that A and B have asymmetric rosters

(Also, very strange behavior: if you skip step 4, the rosters behave as expected, with A and B both having both subscriptions to each other.)