Unity-Technologies / Unity-Technologies/com.unity.netcode.gameobjects

Potential bug. NGO causes Nintendo Switch to freeze.

オープン
#3,053 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

priority:high stat:imported type:bug
主要言語
C#
スター
2.3k
フォーク
461
平均マージ
3日 16時間
マージ済み PR(30日)
20

説明

Description

If you put the console to sleep for a long period of time the console will hang for a period of time.

Reproduce Steps
  1. Start the game or test project
  2. Start a host but do not let any client in
  3. Put the console sleep
  4. Wait a few hours (The longer it sleeps the longer will be the freeze)
  5. Turn the console back on and return to the game.
Actual Outcome

The game is frozen for a certain amount of time. After a while the game is playable again.

Expected Outcome

The game doesn't freeze and Gameplay continue, (Except when playing online)

Environment
  • Unity Version: 2022.3.30f
  • Netcode Version: 1.9
Additional Context

Looking at a nxdump, it seems like the game is freezing in some loop somewhere involving NetworkTime, I did not have the chance to look deeper but I wanted to bring more eyes on the issue. This was the "suspicious" part I found in the dump.

IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR void NetworkTime__ctor_mD40214D6A925F3027C77DA7051C210F487C0CC55 (NetworkTime_t2E4697E4558B217C431021D2CC30A9306E778B5F* __this, uint32_t ___0_tickRate, int32_t ___1_tick, double ___2_tickOffset, const RuntimeMethod* method)

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

ホストのみでクライアントなしのスリープおよびレジュームのシナリオを再現し、その後 NetworkTime__ctor_mD40214D6A925F3027C77DA7051C210F487C0CC55 周辺の nxdump を調査します。疑わしい NetworkTime ループを追跡し、Nintendo Switch で長時間スリープした後もゲームが長時間フリーズせずに再開することを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
csharp, unity
領域
game-dev, networking
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。