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.
N/A
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-39110 in the post.
0 |
Component | UE - Networking |
---|---|
Affects Versions | 4.13, 4.14, 4.15 |
Target Fix | 4.15 |
Fix Commit | 3266027 |
---|---|
Main Commit | 3389599 |
Release Commit | 3266027 |
Created | Nov 28, 2016 |
---|---|
Resolved | Jan 20, 2017 |
Updated | Apr 27, 2018 |