2011-01-06 7 views
4

このログによるエラーは、単純なSQLでMySQLのデータを取得して表示するだけの5歳のPerlスクリプトによって発生します。なぜApacheはメモリラップのために4001でCGI.pmがパニックになっていると不平を言うのですか?

MBPで8GBのRAMを搭載している私の開発マシンで動作しています。

中、月に1,2回たら、私は明確な理由がないのに、次のエラーを取得する:

パニック:/System/Library/Perl/5.10.0/CGI.pmライン4001でのメモリラップ。

Apacheはスクリプトの再実行を拒否し、OSを再起動するだけでApacheが再実行されます。 OSは、起こったときに3GB以上の空きメモリがあると言っているため、メモリの問題が少ないわけではありません。幸いにも、これは生産用のDebian 5サーバでは起こりません。

メモリラップとは何ですか?それは何が原因ですか?

+5

'perldoc perldiag'は、" panic:memory wrap "は"何か可能なものよりも多くのメモリを割り当てようとしました "という意味です。これはCGI.pmの問題ではなく、Perl 5.10やOSXの時折の問題であることを、少しのグーグルが指摘しています。 –

+1

@mu - あなたのコメントはIMOに答えが必要です。 – Nifle

+0

私は完全にナイフに同意します。 @あなたはコメントが答えです。 – GeneQ

答えて

2

少し違う状況でこのバグにも遭遇しました。 PerlMonksは、これまでのように、ただおそらく仕事の日に私を救った:

http://www.perlmonks.org/?node_id=823389

問題は他のリソースアップOSXの絆 方法です。単純な睡眠 は、osの時間を終了し、 を開くでしょう。再起動または優雅は の競合に入ります。

apachectl stop 
sleep 2 
apachectl start 
+0

試してみてください。作品! – GeneQ

0

muが短すぎます。これは残念ながらコメントとして投稿されました。 :

perldiagは、 "パニック:メモリラップ"とは、 "可能なものより多くのメモリを割り当てようとしました"という意味です。これはCGI.pmの問題ではなく、Perl 5.10やOSXの時折の問題であることを、少しのグーグルが指摘しています。

1

これは遅れているが、それがオプションであればMacPortsのが配布perlは、この問題はありません。