Issue with the use of the Subscription plug-in in an s2s environment

I believe there may be an issue with the use of the Subscription plug-in in an s2s environment. Now this may just my setup, but I have reproduced this through two different installs and releases of wildfire.

The SEUP:

Two Wildfire (3.1.1) servers setup, one with AD(client?s/SBS2003) and one with OPENLDAP (my office, CENTOS 4.4). Authentication and IM works flawlessly. One server is at client?s office (DOMAIN2) and the other is at my office (DOMAIN1). The goal of the project is to be able to offer both in house IM for the client and be remotely chat with the client?s office through our own in house server. All groups are managed by the mySQL database not LDAP.

Scenario:

Subscription Service Properties: Enable to ?Accept? ?All?, on both servers.

All users using Spark.

User1@DOMAIN 1 adds a user2@DOMAIN2.

Subscription for user2@DOMAIN2 shows user1@DOMAIN1 online.

Subscription for user1@DOMAIN1 shows user2@DOMAIN2 offline and never updates regardless change in status.

Insight:

Further investigation revels that on DOMAIN2 server the Sub(SubType) for the roster entry in the jiveroster table is set to 1.

33, ‘‘user2’’, ‘‘user1 @domain1 ‘’, 1, -1, -1, ‘’’’

On the Domain1 server the roster entry for the Sub(SubTpye) is set to 3.

581, ‘‘user1’’, ‘‘user2@domain2 ‘’, 3, -1, -1, ‘’’’

According to the source code, type 3 indicates that the rosters have ?The roster item and owner have a mutual subscription.? Type 1 indicates ?The roster owner has a subscription to the roster item’'s presence.? (\src\java\org\jivesoftware\wildfire\roster\RosterItem.java).

This may be the reason why the user2@DOMAIN2 can see the subscription status of user1@DOMAIN1 but user1@DOMAIN1 can not see user2@DOMAIN2.

All communication works perfectly between servers. When normal subscriptions are requested without the assistance of the Subscription plug-in, the issue does not exist, as both SubTypes set to 3. For instance if USER2?s add request is manually approved, then both users can see the status of each other.

The issue also does not exist when adding users in the same domain with the Subscription plug-in turned on.

The issue can be resolved by changing the SubType to 3 on USER2@DOMAIN in the database, purging roaster cache, and then login user1@DOMAIN1 off and back on.

This issue has been known to me since at least 3.1.0 when I revisited the project after a long time away. It is late so I apologize for any grammar and confusion. Any ideas would be appreciated.

Anyone else having this problem?

I am still looking for info on this issue. Has anyone else been able to reproduce it?

Yes I can confirm I also see this issue when adding users across server. It is reproducable and it’‘s always the user that gets added that CAN see the other one’'s status., never vice versa.

Both Windows boxes running 3.1.1 and the latest subscription plug in.

I’'m trying to find a bit more information but I think that groups across servers behave differently.

This bug is stopping me from being able to use S2S and groups completely. If auto accept is set then presence information is only sent one way.

If I turn off auto accept then presence works both ways as expected. However, I want to use server groups with a list of users from the opposite server and I don’'t want dozens of subscription requests going around.

Any ideas when this will be fixed or a workaround?

Steve