停止期間
2023/04/16 5:50 ~ 2023/05/11 7:49
停止した理由
2023/04/05 以降、 整地鯖公式Discord内 "不具合報告" チャンネルにて、データのロールバック (巻き戻し) 関連の不具合が多数報告され、 その不具合の直接的な原因の解明に時間がかかっていたことにより、プレイヤーデータ保護の観点から全ゲームサーバーの停止を決定しました。
不具合の原因
今回の緊急メンテナンスで、データのロールバックが発生した直接的な原因を解明することは出来ませんでしたが、調査の結果、間接的ではありますが整地鯖のメインプラグイン『SeichiAssist』がデータの保存処理でエラーを複数回吐き出していたことがわかりました。
また、プレイヤーデータの保存時にデッドロックが発生していたことも判明しています。
デッドロックとは データベースのデッドロックは、複数のプログラムが同じデータベースを同時に使用しようとして、お互いにブロックし合ってしまう現象です。つまり、一方のプログラムが他のプログラムが使用しているデータを必要とする場合、他のプログラムがそのデータを解放するまで待たなければなりません。同時に、他のプログラムも同じように自分が必要とするデータを解放されるのを待っています。 この状況が永遠に続くと、プログラムは停止します。これがデッドロックです。
不具合の修正・再発防止策
先述の通り、今回判明したエラーやデッドロックがロールバックの直接的な原因と判断はしていません。
今回の緊急メンテナンスでは、デッドロックなどで失敗した場合にそのままスルーするのではなく、保存処理をリトライするよう仕様の変更を行いました。
また、Jdbc と呼ばれるデータの保存処理を行うライブラリが古いバージョンだったため、同時にアップデートしました。
それに加え、再発防止策としてエラーの可視化・監視することができるツール『Sentry』を SeichiAssist にセットアップしました。これによりエラーの追跡が出来るようになりました。
以上が報告になります。
最後になりますが、プレイヤーの皆様にご迷惑をおかけしたことを深くお詫び申し上げます。再発防止に努めてまいります。これからもギガンティック★整地鯖をよろしくお願いします。
Hozzászólások