2

次の非常に厄介なエラーが発生します。

Error: EMFILE, too many open files '/home/savagegames.net/views/index.jade'
at Object.openSync (fs.js:240:18)
at Object.readFileSync (fs.js:128:15)
at View.contents (/home/savagegames.net/node_modules/express/lib/view/view.js:121:13)
at Function.compile (/home/savagegames.net/node_modules/express/lib/view.js:68:45)
at ServerResponse._render (/home/savagegames.net/node_modules/express/lib/view.js:417:18)
at ServerResponse.<anonymous> (/home/savagegames.net/node_modules/express/lib/view.js:318:17)
at /home/savagegames.net/node_modules/express-mongoose/index.js:45:21
at resolve (/home/savagegames.net/node_modules/express-mongoose/index.js:75:12)
at ServerResponse.expressmongoose [as render] (/home/savagegames.net/node_modules/express-mongoose/index.js:37:12)
at /home/savagegames.net/controllers/index_controller.coffee:49:18

Expressの問題だと思います。どうすればそれを修正できますか?ありがとう。

4

2 に答える 2

1

私が見つけたものから、何らかのエラーが発生し、一部のファイルが閉じられていない場合に発生します(もちろんこれはバグです)。私の場合、node-postgres エラーにより (奇跡的に) 利用可能な記述子が枯渇しました。db エラーの原因となったコードを削除すると、EMFILE が消えます。

node.jsコードで修正できると思います-ガベージコレクション時にファイルオブジェクトを閉じる必要があります。これらの失われたファイル記述子が、別の何かによってロックされたままになっている可能性があります。

于 2012-08-26T12:49:46.657 に答える