2014/12/21

やたらロビーでのみ・・・

・・・PSO2.exeが不正終了するので軽く確認してみた。

説明
障害が発生しているアプリケーションのパス: C:\Program Files (x86)\SEGA\PHANTASYSTARONLINE2\pso2_bin\pso2.exe

問題の署名
問題イベント名: APPCRASH
アプリケーション名: pso2.exe
アプリケーションのバージョン: 0.0.0.0
アプリケーションのタイムスタンプ: 5486f277
障害モジュールの名前: pso2.exe
障害モジュールのバージョン: 0.0.0.0
障害モジュールのタイムスタンプ: 5486f277
例外コード: c0000005
例外オフセット: 0001e67f
OS バージョン: 6.1.7601.2.1.0.256.1

・・・以下略
APPCRASH c0000005
で ググると・・・
例外コード c0000005
 ACCESS_VIOLATION
 許可されていないメモリ領域の参照を実行。
アプリケーションの組み方が悪い 典型的なバグと云うのが、検索で得られる 概ね一致した見解。 発現状況は、まず冒頭にもあるとおり ロビー限定で、アイテムパックに未鑑定のレアを持ったまま移動する、ないし 鑑定中が顕著。 先のアプデ分で増えたバグだと思っていいんだろな・・・(´ヘ`;) 赤箱レア処理のルーチン末尾にメモリ開放記述を忘れているのか、参照先アドレスの指定自体を誤っているのか、 変数の使いまわしで思わぬ値が参照アドレスとして引用されてしまっているのか・・・ そんなモノの調査は 運営のシゴトそのものだよな・・・(#-_-)


・・・クエで拾った赤箱レアアイテムを そのままパックに保有した状態で、アイテムパック内の
保持アイテムデータのテーブルがリフレッシュされないままでロビーに居ると発生する事が判明。
(現状として、その事象での不正終了事後、再度PSO2へinすると支障なく鑑定が行える。)

従って、クエで得た赤箱レアを一旦倉庫に格納し、ロビーに戻った後に取り出して鑑定すれば この障害は発生しない。
・・・当面は この方法で対策するしかナイのだが、倉庫がいっぱいなんだよな(´ヘ`;)


このバグの原因はプログラムではなく 所有アイテム情報を格納しているデータベースのテーブルの不整合だろうな・・・
クエ中のアイテムパックテーブルとロビーでのソレとで、テーブルのスキーマが違っていれば こうした状態にはなり得る。

この場合で云うと、赤箱レアのスキーマだけ 1つ少なくなってるか 逆に多くなってしまってるって状態が想定出来るね・・・

で、コレを倉庫に収めると、SEGA鯖側テーブルの正しいスキーマを持つ 赤箱レアレコードでパックのテーブルが整えられ、
ロビーでの往来や 鑑定を支障なく実行出来る様になると考えれば、状況頷ける。

当然、不正終了して再度inした場合でも、同じような状況でデータが整えられていると考えていいだろう。





・・・クエ中に 拾った赤箱レアアイテムを倉庫に 1つでも送った人は、この問題が発現しない って考え方も成立しなくはない。
アイテムパックから倉庫へアイテムを送る行為でも、アイテムパックのテーブルのレコードはリフレッシュされるハズ。

コレが 送るべき対象が赤箱限定であるのか、それとも他の素ドロアイテムや 元々所有していたアイテムでも成立するのかは 未確認だ。

しかし、こう考えないと、事象が発現しないプレイヤが大勢居る説明がつかないってのがある・・・



#PSO2LobbyCrash

0 件のコメント:

コメントを投稿