スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« Mirror-DTC用の宣伝動画 | トップページ | ついでに色々と改良 »

先に不具合修正を

今は、開発を小休止しつつ、公開済みソフトの宣伝動画なんかを作ろうか、と、しているのだが、今日、Mirror-DTCのmacOS版の宣伝用に使用状況をキャプチャーしていると、クライアントがちょくちょくクラッシュしたので、先に修正する。

何度も書いてきている様に、作者環境にはWindows/Ubuntu/macOS環境が色々とあるのだが、それらは別マシンにインストールされている。
 
つまり、仮想環境にインストールされている訳ではないので、本来なら、それらを操作する為には、異なるモニターを見て、異なるキーボード/マウスを使う必要があるのだが、作者的には、全ての環境を、メイン環境としているマシンのモニターを見て、そのマシンのキーボード/マウスを操作して利用している。
 
と、いう事で、作者的には、Mirror-DTCというのはタマに使うモノではなくて、少なくともメイン環境以外の環境を使っている時には、モニター/キーボード用の接続ケーブルみたいな感じで、ほぼ常時使っているモノになる。
 
なので、安定性は十分にあって、普通は、利用中にクラッシュする、なんて事はまずないのだが、過去にも、接続開始時には、問題が発生する事はあった。
 
で、今回も、接続開始時の問題になるのだが、実際には、UDP接続ダイアログで従来の接続処理を終了させる場合に問題が発生している。
 
より具体的に書くと、UDP接続ダイアログでは、ローカルネットワークにブロードキャストして稼働中のMirror-DTCサーバーを検出しているのだが、「最新の情報に更新」ボタンが押されるか、「接続」を開始する場合には、この検出処理を終了させる。
 
この時、認識していたサーバー情報を破棄するのだが、その瞬間には、ダイアログは終了していないので、検出済みサーバーの情報を表示する処理は動作中になっている。
 
つまり、サーバー情報の破棄とサーバー情報の表示処理が同時に発生した場合、存在しなくなった情報を表示しようとするのでメモリアクセス異常が発生してクラッシュする事になる訳だ。
 
で、調べてみた所、上記処理はWindows / Ubuntu版でも同様になっているのだが、少なくとも作者的には、これらでクラッシュが発生した記憶はない。
 
なので、上記の問題はタイミング絡みになる訳なので、多分、macOSが行なっているスレッド制御の場合にのみ発生しているのかもしれない。
 
で、何故、今回、修正する事にしたのか、というと、上記の問題は、作者的には、少し前から認識はしていたのだが、デバッグしようとしても現象が中々発生しなかったからだ。
 
つまり、今回、現象が頻繁に発生する条件を見つけられたので、デバッグしてみた所、問題がある箇所を発見できたので、修正する事にしたのだが、現象が頻繁に発生する条件というのは、ローカルネットワークに多くのMirror-DTCサーバーを稼働させておく、という事だった訳だ。
 
そうすると、最初のサーバー情報の破棄に対応する表示処理を行なっている最中に、それ以降のサーバー情報が破棄されるタイミングが発生しやすくなるので、接続サーバー全体の情報にアクセスしている当該処理で問題が発生する可能性が高まる訳だ。
 
と、いう事なので、通常、接続先が1マシンしかない様な環境だとか、接続設定ファイル等を使用してUDP接続ダイアログをスキップした使い方では問題は発生しなしのだが、ローカルネットワークに数台以上のMirror-DTCサーバーが稼働するマシンが接続されている場合、UDP接続ダイアログから接続しようとすると、クラッシュする確率が結構あるので、宣伝用動画をUpする前に、修正しておく事にする。
 
ちなみに、前述の様に、Windows / Ubuntu版クライアントでも同じ処理コードになっているのだが、少なくとも作者的には、同様のクラッシュは経験していないので、今回は、Windows / Ubuntu版については、不具合修正版は出さない事にする。
 
もっとも、クラッシュの有無はタイミング的な問題になるので、たまたま、そういうタイミングが発生しやすい環境もない事はないかもしれない。
 
なので、もし、利用環境がそういう環境になってしまっている人がいた場合には、その人には、接続には接続設定ファイルを作成して利用するか、TCP接続を使う事をお勧めする。
 
当然のことながら、Windows / Ubuntu版についても、上記の不具合修正は次バージョンには適用することになる筈だ。

« Mirror-DTC用の宣伝動画 | トップページ | ついでに色々と改良 »

トラックバック


この記事へのトラックバック一覧です: 先に不具合修正を:

« Mirror-DTC用の宣伝動画 | トップページ | ついでに色々と改良 »

2019年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google