2007年8月 4日

[Namazu-devel-ja 1634] ディスクの空き容量がない場合に mknmz でエラーとなるように

寺西です。

ディスクの空き容量がない場合に mknmz がエラーも出さずに平気な顔して
終了すると指摘を受けました。

# まぁ、エラーチェックしてないから、そうだろうけど...。

ということで対策なんですが。

全ての書き込み時にチェックすべきなんですが、その修正は大変なので、
util::fclose の中で IO::File を close する前にそのハンドルで
エラーが発生したか否かで判定することにしました。

もちろん、これで全てのチェックができるわけではないのですが、
util::fclose を呼び出す部分だけでもチェックができます。
そして、このチェックだけでも十分に目的は果たせるものと思います。

とりあえず差分です。

--- pl/util.pl.org 2006-02-06 03:53:30.000000000 +0900
+++ pl/util.pl 2007-08-04 15:56:34.000000000 +0900
@@ -72,6 +72,8 @@ sub fclose ($) {
if (ref $arg) {
if ($arg =~ /^(IO::File|FileHandle)/) {
my $fh = $arg;
+ $fh->flush;
+ cdie("write error: $!\n") if ($fh->error);
$fh->close();
return undef;
}
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E

_______________________________________________
Namazu-devel-ja mailing list
Namazu-devel-ja@xxxxx
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-devel-ja

投稿者 xml-rpc : 2007年8月 4日 16:45
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/62601
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。