Skip to content

v1.2.13 — Room 期限切れ後の retry 爆撃を停止

Latest

Choose a tag to compare

@mar1mo-41414 mar1mo-41414 released this 06 Jul 08:10

MineScale-Java v1.2.13

修正

v1.2.12 の長時間テストで発覚した Room 期限切れ後にホストが relay サーバに秒 60 回の勢いで再接続を試み続ける バグを修正しました。

症状

15 分経過して Room が coord サーバから消えた直後から:

  • ホストログに WARN park failed: relay closed before pair の連打
  • サーバログに WARN relay error: room not found の連打
  • 既存の joiner は当面繋がったまま (v1.2.12 の fix 継続) だが、無駄なパケットが常時流れる

原因

  1. Room 期限切れ signal が poll_more_joiners には届くが、relay pool には伝わっていなかった
  2. host_pool の per-task 2 秒 sleep は permit release の後 に置かれていて、4 並列の parker が事実上 backoff 無し状態

修正

  • stop_new_parks cancellation token を追加、poller から pool に room-expired を伝播 → pool が新規 park を停止
  • 既存の paired 接続は影響なし (自身の TcpStream を持って独立稼働)
  • Pool 全体で共有の指数バックオフ (500ms → 1s → 2s → ... 最大 30s)
  • 連続失敗中の warn ログは burst 先頭 1 回だけ

未解決の課題 (次回以降)

paired session が 34 分でジャストに死んだ現象は原因不明 (中間経路の flow-state timeout 疑い)。次回テストで再現するかを見て判断します。

サーバー差し替え不要