残留していると思わしきテンポラリファイNo.04373
tamtan さん 09/11/04 05:40
 
秀丸β22で、
「前回の秀丸エディタの起動時に正しく終了せずに強制終了した形跡があります。残
留していると思わしきテンポラリファイルを消去してよろしいですか?」
というメッセージボックスが秀丸起動時にでました。

確かに
C:\Users\ani\AppData\Local\Temp\hid*.tmp
が残っていたので、それでメッセージが出たと思うのですが、しかし秀丸を正しく終
了せずに終わった覚えがありません。

元ファイルが破損してはいないかと気持ち悪いのですが、このテンポラリファイルは
どのようなときに生成され、削除されるのでしょうか? また、元ファイルの破損の
心配はないのでしょうか?

よろしくお願いします。

[ ]
RE:04373 残留していると思わしきテンポラNo.04380
秀丸担当 さん 09/11/04 14:06
 

>元ファイルが破損してはいないかと気持ち悪いのですが、このテンポラリファイルは
>どのようなときに生成され、削除されるのでしょうか? また、元ファイルの破損の
>心配はないのでしょうか?

テンポラリファイルには2つの使われ方があります。
1つは編集中のファイルがある大きさを超えると、メモリを使わずにテンポラリ
ファイルに退避して作成されるようになります。
[その他]→[動作環境]→[パフォーマンス]→[詳細]の「メモリを使用する最大サ
イズ」によって作成のされ方が違います。
そして、テンポラリファイルを残す設定でなければ、秀丸エディタが正しく終了
すると削除されます。

もう1つは、[その他]→[動作環境]→[パフォーマンス]→[詳細]の「テンポラリ
ファイルを利用して再オープンの高速化」がONになっているとき、秀丸エディタ
が終了しても残ることがあります。
対象ファイルが32kb以上で、ファイルヒストリの上位20個ぶんが残り、再び開
くときに条件が揃えば再利用されます。

秀丸エディタが全て終了していれば、どちらのケースのテンポラリファイルも手
動で削除しても問題は無いです。
元のファイルの破損の心配は無いです。
前者のケースのテンポラリファイルの場合は、秀丸エディタが使っている場合は
削除しようとしても削除できないようになっています。

正しく終了せずに終わった覚えが無いのにこのメッセージが出たのはなぜだか分
かりませんが、もし何らかの不具合によって出てしまっているとしたら申し訳あ
りません。
もしまた起きるようなことがある場合、どのような手順で操作を行われたか教え
ていただけると助かります。

[ ]
RE:04380 残留していると思わしきテンポラNo.04381
tamtan さん 09/11/04 17:14
 
早速の回答ありがとうございました。おかげで安心しました。

以下、バグレポートです。

Windows 7 x64で、複数の秀丸を開いた状態、かつ1つ以上のファイルが更新されてい
たときに、(秀丸を個別に閉じずに)Windowsの再起動をかけると現象が再現しました
(今のところ100%)。Windowds起動時に秀丸が常駐するタイミングでメッセージボッ
クスがでます。

また、Windowsの再起動をかけず、秀丸を個別に閉じたときは、現象は現れませんで
した。hid*.tmpも生成されませんでした。

ただ、さらに調べていると、そもそも秀丸を開いているときもhid*.tmpは生成されて
いませんでした。「テンポラリファイルを利用して再オープンの高速化」はオンにな
っています。

秀丸をすべて閉じてから、タスクトレイからデスクトップ復元をすると、速いときと
遅いときがあります。これは再現率は不明でした。デスクトップ復元しているファイ
ルの中には、1300KBのファイルがあります。

以上です。他に必要な情報があればまたコメントをお願いします。

[ ]
RE:04381 残留していると思わしきテンポラNo.04383
秀丸担当 さん 09/11/04 18:08
 

>Windows 7 x64で、複数の秀丸を開いた状態、かつ1つ以上のファイルが更新されてい
>たときに、(秀丸を個別に閉じずに)Windowsの再起動をかけると現象が再現しました
>(今のところ100%)。Windowds起動時に秀丸が常駐するタイミングでメッセージボッ
>クスがでます。

Windows 7 64bit版で試してみて、少しおかしな動作は確認できたのですが、この
問題そのものはいまいち確認できませんでした。

更新状態のファイルがあると、保存の問い合わせが出ると思うのですが、この問
い合わせが出たまま放っておくと、画面が黒くなってWindowsによる強制終了の問
い合わせが出ると思います。
このとき強制終了すると、テンポラリファイルが残留して、次の起動でメッセー
ジが出ることになると思います。
もしこういう手順だとしたら、正しく動いているということになります。

少しおかしな動作として確認できたのが、保存の問い合わせでキャンセルをする
とWindows再起動そのものがキャンセルされるはずなのですが、再起動が続行して
しまうことがありました。
Windows XP だと起きないので Windows7で何か変わったのかちょっと詳しく調べ
てみないとわからないです。
この点はまた調べます。

保存の問い合わせが出ているかどうかなど、そのあたりの操作方法も教えていた
だけると何かわかるかもしれないです。

[ ]
RE:04383 残留していると思わしきテンポラNo.04384
tamtan さん 09/11/04 22:00
 
それが、前回起動時にデスクトップ復元をしていた場合、Windowsを再起動すると、
ファイルの更新に関わらずメッセージボックスがでるようになってしまいました。普
通に秀丸を新規で開いて保存した場合はでません。デスクトップ復元が現象再現の原
因のようです。

デスクトップ復元しているファイルは1300KBのテキストファイルの他、いくつかの普
通のテキストファイルです。

なお、再起動時の保存は現象とは関係ないようでした。再起動時に秀丸の保存をキャ
ンセルしたのに再起動が続行してしまうという現象は、こちらでも確認できました。

以上です。また、β23お疲れ様です。β23を試して、またおかしな動作がありました
ら報告します。

[ ]
RE:04384 残留していると思わしきテンポラNo.04388
秀丸担当 さん 09/11/05 13:54
 

詳しい情報ありがとうございます。

とりあえず、キャンセルしても再起動が続行してしまう件は分かりました。
Vista以降では、非表示のウィンドウがキャンセルしても無視して続行するよう
に仕様が変わってしまったようです。

V8.00の新タブモードではタブのために都合あって非表示のウィンドウがあるの
ですが、実はこの非表示のウィンドウが問い合わせダイアログを出すことがあっ
て、これがシャットダウンをキャンセルしても無視されてしまっていました。
対策も分かったのでβ24で修正させていただきます。


デスクトップ復元の件はこちらでは再現できませんでした。
でも上記非表示のウィンドウの絡みで強制的にプロセスが終わる場合もあるよう
なので、もしかしたら次のβ版で改善するかもしれません。

あと、テンポラリファイルを残す設定になっていると、逆にそれがアダとなって
終了処理に時間がかかることがあるかもしれません。
未確認ですが、終了処理に時間がかかるとVista以降ではWindowsによって強制的
に終了してしまうことがあるのかもしれないです。
「テンポラリファイルを利用して再オープンの高速化」をOFFにするともしかし
たら改善するかもしれないです。
もしそうだとしたらということで、シャットダウン時はテンポラリファイルの再
利用を省いてすぐに終了するようにも修正してみようと思います。

[ ]
RE:04388 残留していると思わしきテンポラNo.04392
tamtan さん 09/11/05 18:49
 
すみません。デスクトップ復元していたファイルはすべてネットワーク上のファイル
でした。ヘルプを読み忘れていました。申し訳ありません。どうりで普段はtmpにテ
ンポラリファイルがなかったわけです。

ただ、その状態で再起動をかけると、起動時にやはりメッセージボックスはでます。
再起動時にのみ、ネットワーク上のファイルであるにもかかわらずテンポラリファイ
ルを(再起動をかけたタイミングで)生成し、その削除をしないで終了してしまうよう
です。

なお、「テンポラリファイルを利用して再オープンの高速化」をOFFにしたら現象が
出なくなりました。回答どうもありがとうございました。

[ ]
RE:04392 残留していると思わしきテンポラNo.04406
秀丸担当 さん 09/11/06 10:36
 

>なお、「テンポラリファイルを利用して再オープンの高速化」をOFFにしたら現象が
>出なくなりました。回答どうもありがとうございました。

そうでしたか。
だいたい理由が分かってきました。
再起動時にテンポラリファイルを残すために作成しようとして、その作成に時間
がかかりすぎているため、作っている途中にWindowsが強制終了させているのか
もしれないです。
Vista以降ではとにかくシャットダウン時は速やかに終了させないといけない方
針になっているようなので、次のβ版ではシャットダウン時にはテンポラリファ
イルを作成する処理をやめてしまおうと思います。
いろいろ情報ありがとうございました。
とりあえずはオプションOFFで回避していただけたらと思います。

[ ]