#836 User is kicked from MUC room when smacks timeout reached
Reporter
Satoshi
Owner
MattJ
Created
Updated
Stars
★ (1)
Tags
Priority-Medium
Type-Defect
Status-Fixed
Satoshi
on
What steps will reproduce the problem?
1. Enter room as a user.
2. Disconnect, leave steam in hibernated state.
3. Reach timeout.
What is the expected output? What do you see instead?
I expect that user will leave the room, instead he is kicked.
What version of the product are you using? On what operating system?
trunk-743
NixOS
Please provide any additional information below.
Part of debug logs:
mod_smacks hibernation timeout reached...
Destroying session for hibernating too long
Destroying session for user1@server/client (user1@server)
Destroying session with 16 unacked stanzas
SEND: <presence type='unavailable' to='user2@server/client' from='muc@conference.server/user1'><x xmlns='http://jabber.org/protocol/muc#user'><status code='307'/><item affiliation='none' role='participant'/></x></presence>
Zash
on
This happens because the '16 unacked stanzas' are bounced, ie responded to with an error. The MUC room responds by kicking them for sending an error, as a method of preventing ghost participants.
I do not believe is wrong, but I don't think there's anything saying anything specific on the subject.
Satoshi
on
That is not wrong by spec by could it be changed so that user "leaves" instead? Otherwise it looks strange for participants. Some people leave when they turn off PC and some are kicked with strange, for user, reason "None". We moved from ejabberd which makes users "leave" instead.
MattJ
on
@Satoshi Can you get an XML capture from your client?
Prosody should be setting the "333" status code. This is different from a normal kick, and your client should interpret and display it accordingly. If the code is there, you may need to contact your client developers and ask them to show this correctly.
Changes
tags Status-NeedInfo
MattJ
on
Closing this due to no response. The observed behaviour is likely related to #939.
What steps will reproduce the problem? 1. Enter room as a user. 2. Disconnect, leave steam in hibernated state. 3. Reach timeout. What is the expected output? What do you see instead? I expect that user will leave the room, instead he is kicked. What version of the product are you using? On what operating system? trunk-743 NixOS Please provide any additional information below. Part of debug logs: mod_smacks hibernation timeout reached... Destroying session for hibernating too long Destroying session for user1@server/client (user1@server) Destroying session with 16 unacked stanzas SEND: <presence type='unavailable' to='user2@server/client' from='muc@conference.server/user1'><x xmlns='http://jabber.org/protocol/muc#user'><status code='307'/><item affiliation='none' role='participant'/></x></presence>
This happens because the '16 unacked stanzas' are bounced, ie responded to with an error. The MUC room responds by kicking them for sending an error, as a method of preventing ghost participants. I do not believe is wrong, but I don't think there's anything saying anything specific on the subject.
That is not wrong by spec by could it be changed so that user "leaves" instead? Otherwise it looks strange for participants. Some people leave when they turn off PC and some are kicked with strange, for user, reason "None". We moved from ejabberd which makes users "leave" instead.
@Satoshi Can you get an XML capture from your client? Prosody should be setting the "333" status code. This is different from a normal kick, and your client should interpret and display it accordingly. If the code is there, you may need to contact your client developers and ask them to show this correctly.
ChangesClosing this due to no response. The observed behaviour is likely related to #939.
Changes