Remove the session that was used for resumption immediately

Description

Stream Management is a feature that allows a session to be 'resumed'. The implementation basically keeps a reference to a session alive for a certain period of time when its connection got disconnected in a non-clean way (eg: network interruption). When a new session for the same user is established, that session can indicate that it wants to be 'resume' the old session. What happens is that the new session "donates" its connection to the old session, which is then is resumed.

The session that donates its connection is no longer relevant. The existing code marks it as 'detached', which, eventually, causes it to be cleaned up. This, however, is confusing (and potientially wrong): the session lingers in a state of being 'detached', which implies that it can be resumed. That simply is not the case. The session is cleanup up only after the detach timeout has occurred.

Openfire should clean up the donor immediately after session resumption.

Environment

None

Activity

Fixed

Details

Assignee

Reporter

Fix versions

Priority

Created May 3, 2020 at 5:49 PM
Updated May 18, 2020 at 12:17 PM
Resolved May 5, 2020 at 1:06 PM

Flag notifications