[Namazu-users-ja 278] Re: Out of Memory

nakashima-k nakashima-k @ nttd-fr.com
2005年 2月 2日 (水) 13:35:45 JST


寺西様

情報ありがとうございます。
さっそくperlのデバッグモードで試してみました。


> 
> $ perl -d /usr/local/bin/mknmz 引数 excelファイル
> DB<1> t
> DB<2> c
> 
> として、どこで落ちているかわかるでしょうか。(最後の方は後処理で 
> DESTORY を呼んでいるかと思いますので、Out of Memory 近辺の情報が重要)
> 

以下のメッセージが出力されました。

html::element_space(/usr/local/share/namazu/filter/html.pl:303):
303:	$_[0] =~ /^($conf::NON_SEPARATION_ELEMENTS)$/io ? "" : " ":
Out of memory!
wakati::CODE(0x82e4034)(/usr/local/share/namazu/pl/wakati.pl:83):
83:		$t->DESTROY() if defined $t;
Debugged program terminated.


> 
> filter/excel.pl の filter_xl サブルーチンの
> 
>    util::systemcmd("$xlconvpath -m $tmpfile > $tmpfile2");
> 
> の後に
> 
>     my $size = util::filesize($tmpfile2);
>     if ($size > $conf::TEXT_SIZE_MAX) {
>         unlink($tmpfile);
>         unlink($tmpfile2);
>         return 'too_large_excel_file';
>     }
> 
> をつければ、はじくことができるかと思います。

ありがとうございます。
バージョンをあげて、早速この修正を試してみます。

ちなみにこれだとExcelファイル全てがパスされるので、
$tmpfileが$TEXT_SIZE_MAXの容量まで出力して、それを越したら処理をやめるという風
にするにはxlhtmlの改造が必要ですよね。

ありがとうございました。




Namazu-users-ja メーリングリストの案内