한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

ゲームラグ白書 › 一部のユーザーだけに起きる問題

キャッシュ・アセットファイルへの同時アクセスの競合 Shared cache / asset file lock conflicts

原因ID pt-asset-lock · 主担当 ゲーム開発チーム・クライアント開発

図と実験のあるメインページでこのカードを開く →

2つのクライアントが同じキャッシュフォルダーに同時に書き込んだりファイルをロックしたりすると、片方がNPCのモデル・テクスチャを読み込めなくなります。

なぜ 2つのクライアントが同じインストールフォルダーのキャッシュ・アップデートファイルに同時に書き込む → すると ファイルロックの失敗や、書きかけのファイルを読んでロードに失敗 → 画面では ネームプレートはあるのにキャラクターモデルがない、または透明なNPC

症状
表示されない・ゴースト
要因
ストール
誰に起きるか
同じPCの片方のクライアントだけ
いつ
接続直後・メンテ明け, 移動中・マップ切り替え時
担当
主担当 ゲーム開発チーム・クライアント開発
ゲーム開発チームの対応
クライアントごとのキャッシュフォルダー、ファイルロック失敗時の再試行、ロード失敗時はデフォルトのモデルだけでも表示。
グラフでは
一部だけ高い · クライアントごとのアセットのロード失敗数
確認箇所
ユーザーのPCでProcess Monitorを使ってゲームのインストール・キャッシュフォルダーのパスだけに絞り、2つのゲームプロセスのファイルのオープン・書き込みの結果を確認。クライアントログがあれば、アセットのロード失敗とファイルオープンのエラーコード(ERROR_SHARING_VIOLATION)を探す
該当する場合
表示されないモデルのファイルオープンが共有違反・ロック失敗で終わっており、同じ時刻にほかのクライアントがそのファイルに書き込んでいた。1つだけ起動するか、インストール・キャッシュフォルダーを分けると消える
該当しない場合
クライアントを1つだけ起動しても同じモデルが表示されないなら、ファイルの破損かクライアントのバージョン・データの不一致。ファイルは正常に開けたのに描画されないなら、メモリ・VRAM不足
確認手段
ユーザー側の環境で確認

出典

  1. Creating and Opening Files Microsoft
    共有モードなしで開いたファイルはほかのプロセスが開けず、ERROR_SHARING_VIOLATIONになる
  2. Process Monitor Microsoft
    ファイルシステム・レジストリ・プロセスの動作をリアルタイムで記録し、パスなどあらゆる項目で絞り込める

あわせて読みたい原因

同じ層:一部のユーザーだけに起きる問題

同じ症状(表示されない・ゴースト)を起こすほかの層の原因

図と実験のあるメインページでこのカードを見る