Openfire sends wrong statusCode 110 in Presence

Hello,
on Openfire Version 4.6 i have the following problem:

Admin A kicks User B from a muc with:

<iq from='admin@mydomain.local/ressource'
    id='kick1'
    to='room@mydomain.local'
    type='set'>
  <query xmlns='http://jabber.org/protocol/muc#admin'>
    <item nick='Usernick' role='none'>
      <reason>Kicked out Test</reason>
    </item>
  </query>
</iq>

Then the user was kicked from channel but the Admin gets this presence back:

<presence from="room@mydomain.local/Usernick" to="admin@mydomain.local/ressource" type="unavailable" xmlns="jabber:client">
   <x xmlns="http://jabber.org/protocol/muc#user">
        <item jid="user@mydomain.local/ressource" affiliation="member" role="none">
             <actor jid="admin@mydomain.local" nick="Admin"/>
        </item>
        <status code="307"/>
        <status code="110"/>
  </x>
</presence>

Code 110 is totaly wrong here, because it is not a self-presence… the problem is now that 110 let the Admins’ client think he was kicked too, but that is not the case.


Part: 8.2

Expected:

  • Example 93. Service Informs Remaining Occupants AND
  • Example 92. Service Informs Moderator of Success
    should be send out by openfire

Actual behavior:

  • it seems that Example 91. Service Removes Kicked Occupant was sent to Admin.

INFO: This only occurs on a kick not on a ban.

Thanks for this detailed report. I attempted a kick from the admin console of a current 4.6.1-snapshot build of openfire and got this back.

<presence from='open_chat@conference.igniterealtime.org/daryl' to='akrherz@igniterealtime.org/1d0kzcogsf' type='unavailable'>
	<x xmlns='http://jabber.org/protocol/muc#user'>
		<item jid='623pewihiu@igniterealtime.org/623pewihiu' affiliation='none' role='none'>
			<actor jid='akrherz@igniterealtime.org'/>
		</item>
		<status code='307'/>
	</x>
</presence>

Does it reproduce for you from the admin console too?

No if i kick the occupant from admin console all other occupants will receive the correct stanza,
so only if a client sends kick stanza it will get back the wrong status code.

Thanks, filed OF-2178.

I’m hitting the inverse of this problem, and have raised https://igniterealtime.atlassian.net/browse/OF-2240 to cover it - nobody appears to get a 110 when a kick occurs.

I’ve written a couple of Smack tests which seem to confirm what I’m seeing - that by default, “witnesses” to the kick get the correct status, but the “kickee” doesn’t (and so the test fails) https://github.com/Fishbowler/Smack/commit/0e6963330804580a43f82b61f667fc40163189da

Any idea what might be different in our setups?

Strange… i realy could not reproduce my issue any more :face_with_monocle: :face_with_raised_eyebrow:
but now i can confirm the bahavoir danc_surevine has noticed…
the 110 is never send to kicked user…
I am on OF 4.7 Alpha now … and i updated the code in the end of february / beginning of march…

Between that december and the time that you updated your instance, I think we introduced the FMUC experimental functionality. That seems somewhat related. Maybe this caused the behavior to change.