Start Entwicklung June 2022 GDK Update 4: Microsoft schließt Websocket-Memory-Leak in PFMultiplayerUninitialize

June 2022 GDK Update 4: Microsoft schließt Websocket-Memory-Leak in PFMultiplayerUninitialize

0
June 2022 GDK Update 4: Microsoft schließt Websocket-Memory-Leak in PFMultiplayerUninitialize
June 2022 GDK Update 4: Microsoft schließt Websocket-Memory-Leak in PFMultiplayerUninitialize - Bild: offizielle Quelle

Microsoft hat in den am 27. Oktober 2022 veröffentlichten Release Notes zum June 2022 Microsoft Game Development Kit (GDK) Update 4 einen Fehler im PlayFabMultiplayer C++ Client SDK korrigiert, der zu einem Speicherleck bei Websocket-Ressourcen führte. Laut Dokumentation gaben Websocket-Ressourcen ihren Speicher nicht frei, wenn die Funktion PFMultiplayerUninitialize() aufgerufen wurde oder wenn die Bibliothek intern eine App-Suspendierung auf Xbox-Konsolen verarbeitete.

Speicherleck bei De-Initialisierung und Suspendierung

Der behobene Fehler betraf zwei konkrete Szenarien im Lebenszyklus einer Anwendung. Zum einen trat das Leck beim expliziten Aufruf von PFMultiplayerUninitialize() auf, also der regulären De-Initialisierung der PlayFabMultiplayer-Bibliothek. Zum anderen manifestierte es sich bei der internen Verarbeitung einer App-Suspendierung auf Xbox-Hardware, einem Vorgang, der durch das Betriebssystem ausgelöst wird, wenn ein Titel in den Hintergrund wechselt. In beiden Fällen verblieben Websocket-Ressourcen im Speicher, ohne korrekt freigegeben zu werden.

Für Titel, die wiederholt initialisieren und de-initialisieren oder häufig zwischen aktivem und suspendiertem Zustand wechseln, summiert sich ein solches Leck über die Laufzeit. Auf den ressourcenbeschränkten Konsolen-Umgebungen wiegt ein kontinuierlich wachsender Speicherverbrauch schwerer als auf typischer Desktop-Hardware, da der zur Verfügung stehende Arbeitsspeicher fest zugeteilt ist. Die Korrektur stellt sicher, dass die Websocket-Ressourcen bei beiden Auslösern ordnungsgemäß freigegeben werden.

Zweite Korrektur in der XSAPI-Sitzungsverwaltung

Neben der Speicherleck-Korrektur dokumentiert Update 4 einen weiteren Fix in der Xbox Services API. Dort wurde ein Problem behoben, bei dem der asynchrone Callback von XblMultiplayerWriteSessionAsync nicht zurückkehrte, sofern dieser auf eine RTA-Connection-ID wartete und der Real-Time-Activity-Dienst nach einem Verlust der Netzwerkverbindung nicht erneut verbinden konnte. Damit blieb ein anhängiger asynchroner Vorgang dauerhaft offen, statt einen Abschluss zu signalisieren.

Update 4 steht zudem im Kontext eines Verteilungsproblems der Vorgängerversion. Microsoft weist in den Release Notes darauf hin, dass Update 3 wegen eines Packaging-Fehlers vorübergehend entfernt wurde und mit Update 4 die entsprechenden Korrekturen eingespielt wurden. Die beiden behobenen Fehler adressieren die Stabilität von Multiplayer-Komponenten innerhalb des June-2022-GDK-Zweigs und betreffen Entwickler, die PlayFabMultiplayer beziehungsweise die Multiplayer-Sitzungsverwaltung der XSAPI einsetzen.

Solche Wartungsversionen prägen den Rhythmus des GDK, das Microsoft in regelmäßigen Abständen mit gebündelten Fehlerbehebungen und Funktionen pflegt, wie etwa beim März-2024-Update des Game Development Kit. Die Backend-Komponente PlayFab wird parallel weiterentwickelt; spätere Ausgaben des PlayFab Digest belegen, wie kontinuierlich an dem Dienst und seinen SDKs gearbeitet wird.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein