Description

FOnlineSessionLive::CreateSession creates the session early into the method. Later, the method can fail but the session and is never cleared up (see the various catch statements in the tasks which only Trigger the delegates).

This seems to also occur in FOnlineSessionPS4::CreateSession as well. CreateSession creates a session then queues a FOnlineAsyncTaskPS4SessionCreate. This task can exit early (due to failure), but nothing clears the session.

This means the sessions will persist in the TArray<FNamedOnlineSessions> Sessions member.

Similarly, FOnlineSessionsLive::FindSessions also leaves bad state. This could be fixed by either clearing CurrentSessionSearch or changing the conditional in the beginning to properly check that another search isn't in progress (OR instead of AND):

if(!CurrentSessionSearch.IsValid() || SearchSettings->SearchState != EOnlineAsyncTaskState::InProgress)

This doesn't appear to be an issue for FOnlineSessionsPS4::FindSessions.

Steps to Reproduce

N/A

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-39110 in the post.

0
Login to Vote

Fixed
ComponentUE - Networking
Affects Versions4.134.144.15
Target Fix4.15
Fix Commit3266027
Main Commit3389599
Release Commit3266027
CreatedNov 28, 2016
ResolvedJan 20, 2017
UpdatedApr 27, 2018