Sourceforge Tracker Monitor
norep****@sourc*****
2003年 5月 19日 (月) 04:28:40 JST
Bugs item #2037, was opened at 2003-05-07 09:37 You can respond by visiting: https://sourceforge.jp/tracker/?func=detail&atid=1698&aid=2037&group_id=430 Category: 分散サーバ関連 Group: None Status: Open Resolution: None Priority: 5 Submitted By: Naoki Kurosawa (kurosawa) >Assigned to: Naoki Kurosawa (kurosawa) Summary: シャットダウン時はロボットデータを送信しちゃだめ Initial Comment: Ctrl+Cなどで分散サーバを終了させたときは、ロボットデー タを送信しちゃうと中途半端なデータを送信してしまう。 ---------------------------------------------------------------------- >Comment By: Naoki Kurosawa (kurosawa) Date: 2003-05-19 04:28 Message: Logged In: YES user_id=3710 ほとんど修正終わってますが、 いまさらながら自分にタスク割り当て。 ---------------------------------------------------------------------- Comment By: Naoki Kurosawa (kurosawa) Date: 2003-05-07 11:47 Message: Logged In: YES user_id=3710 かといってまったく送信しないと、ちゃんと完了したバトルでの データも送信されないことになる。 現状の大まかな流れは以下の通り 1.中央サーバから対戦情報を取得 →division内のロボットのデータ一覧も一緒に取得 2.ローカルのデータ保存領域と比較して、中央サーバからダウン ロードし、.robotcacheディレクトリにコピー 3.division内の全対戦を実行 4.ローカルのデータ保存領域と.robotcacheを比較して、アップ ロードするファイルを決定 5.対戦結果と変更データを送信 Shutdownタイミングによるデータ送信内容は ■1から3の前まで ・対戦結果は空のデータを送信するので問題なし ・ロボットデータは現状の(つまり古い)情報を送信してしまう。 ■3の最中 ・対戦結果は、完了済みのもののみが送信されるので問題なし ・ロボットデータは、完了済みのものに加えて、対戦実行中のもの まで送信されてしまう。 ■4の前 ・対戦結果、ロボットデータともに正しいデータが送信される。 ■4の最中および5の最中 ここはsynchronizedセクションで囲まれているので、Shutdownフッ クに割り込まれない どうすべきか 1.中央サーバから対戦情報を取得 →division内のロボットのデータ一覧も一緒に取得 synchronizedセクションで保護して割り込まれないようにする。 2.ローカルのデータ保存領域と比較して、中央サーバからダウン ロードし、【データ保存領域に保持】 3.division内の全対戦を実行 →対戦実行前に.robotcacheにコピーし、対戦が完了したらデータ 保存領域に戻す、という作業を1戦ごとにやる この作業はsynchronizedセクションで保護し、割り込まれない ようにする。結果情報をresultsリストに登録するのも synchronizedセクション内でやる 4.データ保存領域と【最初に取得したファイル一覧】を比較して、 アップロードするファイルを決定 5.対戦結果と変更データを送信 4と5は同じsynchronizedセクションで保護する。 データ保存領域にあるデータをメインとして、 1戦完了するごとにデータ保存領域を更新(対戦が完了していない間 は更新しない)し、いつでもデータ保存領域情報を送信すればよい ようにする。 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.jp/tracker/?func=detail&atid=1698&aid=2037&group_id=430