障害情報

2002-11-02

HALCA の不具合に関する情報です。
青っぽい部分 は解決した問題,赤っぽい部分 は未解決の問題を表します。

解決したバージョンは書いてありますが、問題の発生するバージョンは調べていません。 もちろん調べるのが面倒なのがその理由です。 基本的に過去のバージョンは相手にしていませんので、最新版でどうなっているのか? という視点で書かれています。 過去にどんな障害があったのかを記録しているだけとお考えください。

01-23

現象

導入時(初回起動時)に、(前バージョンを実行していないにも拘らず)前バージョンのプロパティ移行を行っている。

対処

済 (Ver.0.28)
v0.12 以降では、前バージョンの minor version が 11 以下の時にプロパティ移行処理を行っていた。 初回起動時は、プロパティが存在しないため "前バージョン" を取得できず minor version は 0 となる。 本来の対象は v0.1〜v0.11 なので v0.0 が該当してしまう。 前バージョンの範囲に下限を設けることで対処。

01-22

現象

タイマ終了予定時刻が正しく表示されない。

対処

済 (Ver.0.26)
時差の計算ミス。 時差 -15時間って何よ? (^^;
影響で 0:00〜9:00 の間でタイマ終了予定時刻を表示すると、時刻がおかしくなっていた。 また、0時台では 時 を表示していなかった。 時刻と時間の整形ルーチンを共通化した時のミス。

01-21

現象

起動直後にカレンダーを表示すると、口が開きっ放しになる。

対処

済 (Ver.0.25)
人型で、まばたきを有効にしている場合、起動時のあいさつの時に口を開く。 いっぽう、カレンダーを表示していると画像表示は禁止状態になる(カレンダーパネルの上に口だけ表示されてしまうため)。 時間が経てば口を閉じるが、画像表示禁止の場合は表示更新しないまま、口を閉じたつもりになる。

今の所、衝突するのはカレンダーのみらしいので、カレンダーを閉じる時に口を開いていたら閉じるようにして対処。 根本的な解決には、画像とステータス保持の考え方を見直す必要が有る。

01-20

現象

デフォルト休日の設定時、ヘルプを見た後に年指定がおかしくなる(1999年→30年 など)。

対処

済 (Ver.0.24)
サブ action によるグローバル変数のメモり破壊。 専用の変数を用意して対応。

01-19

現象

休日のマニュアル設定時に年/月を入力すると、ガイド表示が閉じてしまう。

対処

フキダシ表示は行き当たりばったりで実装しているので、管理されていません。 改修の目処は立っていません。 我慢してください。(^^;

01-18

現象

カレンダーで 9999年12月を表示した状態で [翌月] ボタンをクリックすると、ペルソナウェアのエラーダイアログが表示される。

対処

済 (Ver.0.21)
西暦年の各桁について [0]〜[9] の画像を用意しているが、[10] を表示しようとしていた。 有名な"2000年問題"と根本的な部分で同じ現象。

範囲外のチェックは行っておりその旨フキダシに表示するが、範囲内/外とは無関係に表示を行っていた。 範囲外チェックの結果を利用するよう修正。 ついでに範囲チェック処理を強化(0000年1月〜1582年9月も蹴るよう変更)。

01-17

現象

時計OFFの時にカレンダの 年/月 を直接指定すると、時刻表示のない時計パネルが表示される。

対処

済 (Ver.0.21)
グラフィックのプリロード処理(予め *.hpg ファイルを読込んでおき、本番表示の高速化を図る処理)を AddBitmap() で行っているため、DisplayImage() すると表示されてしまう。 LoadBitmap() でビットマップバッファをクリアできる事から、立ち姿パネルのロードをプリロード後に行うよう変更。

01-16

現象

カレンダの休日入力時、年/月 を直接指定してもカレンダが移動しない。

対処

済 (Ver.0.20)
改修ミス。 何も考えずに作っていたので、カレンダ表示/休日入力各々に直接指定の処理がありました。 これをひとつにまとめようとして失敗していた模様。

01-15

現象

アラーム時刻を設定すると曜日設定が「毎日ON」になる。
アラームの曜日設定が変更できない。

対処

済 (Ver.0.18)
データ管理のミス。 "曜日デフォルト設定"と"アラームの曜日指定"が別のモードだったものを、同じ処理ならひとつにまとめようとして失敗していた模様。

01-14

現象

SLEEPタイマの減算→超過遷移時に、1〜2秒間設定した時間が表示される。

対処

済 (Ver.0.17)
減算→超過の推移ををモード遷移(SLEEP→CountUP)と扱っていたが、これを SLEEP の状態のひとつとして扱うよう変更。 単なる状態推移なので、一貫した表示が可能になる…はず。

01-13

現象

アラームの [設定解除] 時に、曜日の設定が初期値に戻らない。

対処

済 (Ver.0.16)
初期化モレ。 初期化されないままプロパティにも記録される。
初期化するよう修正。 また、デフォルト曜日設定を自由に変更できるように改良。

01-12

現象

ZMemo 環境で [時計のみ] の時、カレンダを表示すると宙に浮いてしまう。

対処

済 (Ver.0.13)
直接の原因は、画像作成のミス。

人型は高さ320pixel,時計のみは248pixel。 差分の 72pixel は下端側の透明部分になる。 PersonaWare では、LoadBitmap() した画像と AddBitmap() する画像のサイズが異なる場合、LoadBitmap() した方に揃えるようだ。 一方、ZMemo では大きい方に揃えられるようだ。

で、HALCA 側で用意した画像は人型用に作ったものを [時計のみ] でも使用するため、ZMemo では 可視pixel が無い部分も「ちゃんと」表示する事になる。 言わば下端マージンが取られる状態になり、宙に浮いて見える。 カレンダ用の画像をギリギリまで小さくして対応。

01-11

現象

HALCA 起動直後に異常終了。

対処

済、経過観察中 (Ver.0.11)

01-10 の問題と同じ。 プロパティへの書込みが行われていない場合があり、最悪の場合プロパティへの書込みを行うと異常終了してしまう。 HALCA は起動直後から定周期で "生きてる証明" をプロパティに書込むが、初回書込み時に異常終了してしまうのが原因。

プロパティファイル ayaprop を削除するしか無いようです。


処置追加 (Ver.0.25)

どーも、PutProperty()→SaveProperty() を連続で行うとマズイような気がしてきた。 v0.25 で CALENDER_OPTION に2文字追加したら、ShutDown() で本事象が再現するようになってしまった…。 CALENDER_OPTION なんか全然関係ない Action なのに?

SaveProperty() を除去したところ問題が解消。 "\p" で実行を止めても再現していたので、SaveProperty() の時間間隔は関係ないようだ。

基本的に PERSONA_ALIVE は Put しただけでは意味がないので、このタイミングで Save したいところ。 つまり1分周期で Save される。 設定変更後に SaveProperty() できないのは痛いが、1分以内に異常終了しない事を祈りつつ待つしかないだろう。 なにしろ、放置しておけば、終了時に 100% 落ちてしまうのだから。

なお、他のPCの PersonaWare で再現させてみたところ、再現しない。 問題の ayaprop を使っても再現しない。 開発環境に特有の現象なのだろうか…。

01-10

現象

[休日の設定] で設定した休日が、設定されていない。

対処

済、経過観察中 (Ver.0.11)

v0.10 では、休日設定中の作業データをプロパティに保存するようにしていた。 しかし、プロパティへの書込みが行われていない場合がある。 普通に PutProperty() で保存し、SaveProperty() で ayaprop に書込んでいただけなので、PersonaWare 側の問題ではないかと思われる。 作業データは、月単位でプロパティに保存するため、他のプロパティに比べ読み書きが激しい。 高負荷状態では処理できないのではないか?

作業データをプロパティに保存するのをやめ、オン-メモリで処理するよう変更したところ安定した。 ただし、確定する場合はプロパティに保存するので再現する可能性が残っている。 プロパティへの保存は年単位(年度ではないので注意)で行われるので、数年分をまとめて設定した時が危ない。

安全を見て、年単位(せめて年度単位)で確定すべきだと思われます。

01-9

現象

外観が [時計のみ] の時、アラーム設定(曜日設定)時にパネル支持ポールが表示される。

対処

済 (Ver.0.8)
外観を判定して表示/非表示とする処理を追加。 [時計のみ] の場合は、パネルは(壁紙上の)適当な位置に配置できる。 [人型] の場合は、重力が働くので支持する必要があるとしている。

01-8

現象

雑談要求時にフキダシの表示速度を normal に変更するが、nowait に戻らない。

対処

済 (Ver.0.8)
戻す処理を追加。 HALCA では、メニュー等会話に属さない表示を迅速に行うために nowait が基本。

01-7

現象

外観が [人型] 時の雑談要求で要求を拒否すると、表情が変わったまま元に戻らない。

対処

済 (Ver.0.8)
戻す処理を追加。 60秒くらいで戻るように対処してみた。

01-6

現象

Commandモードの VIEW コマンドで、'\' を含む文字列(パス名を含む文字列)を正しく表示できない。

対処

済 (Ver.0.6)
'\'をそのまま発言していたため、続く1文字とペアでメタ文字として処理されていた。 '\'(半角) を '¥'(全角) に置換してから表示するように変更。

01-5

現象

改版履歴で ','(カンマ) 自身を発言できない。

対処

済 (Ver.0.4)
発言中のカンマがデリミタとして認識されていた。 カンマで区切られた2つの有効な発言の間においては、カンマを補完するように変更。

01-4

現象

「義(8B60h)」など下位Byteに 2Ch/60h を含む文字が妥当であるにも拘わらず不当と判定され呼称に使用できない。 不当な呼称と判断される間は永久に再設定を繰り返すが、理由が説明されていないため対処不能となる可能性があった。

対処

済 (Ver.0.4)
内部でデリミタとして使用していた文字 ','(カンマ:2Ch) と '`'(アクサングラーブ:60h) を呼称に使わないよう、StrSearch( ) を使ってチェックしていたのが原因。 StrSearch( ) は2Byte文字を正しく処理できないようで、60h を含む漢字を"不当"と判断されてしまう。

内部処理を変更し、デリミタを使用しない処理方式に変更。

01-3

現象

時計パネル上の [Quick]ボタン(簡易モード遷移ボタン)はボタンでありながらクリックしても押下の演出を省略していた。 仕様通りだが、使ってみて挙動がおかしいのは確か。

対処

済 (Ver.0.3)
[Quick]ボタンも押下の演出対象とした。

01-2

現象

雑談に応じると PersonaWare 側でエラーが発生する。 または、関係ない話をする。

対処

済 (Ver.0.2)
起動時に行う雑談のスケジューリングにおけるミス。 記事を読み切った状態で起動すると、存在しない記事をスケジュールしていた。 存在しない記事をスケジュール対象としないよう修正。

01-1

現象

フキダシを開いたまま HALCA の終了操作(お休みする/他のペルソナへの切替)を行うと、PersonaWare が異常終了する。 単なるフキダシ(時報など)では問題ないが、フキダシ内でのクリック待ち状態(メニュー選択中/雑談の一時停止など)だと問題が起こる。 他のペルソナでは再現しなかったため、HALCA 固有の問題と思われる。

対処

未解決。
HALCA の終了はフキダシを閉じてから操作してください。

Copyright© 1998-2006 Hira