Ruby on rails 不断获得;“打开的文件太多”;运行测试时
每当我运行RSpec测试时(可能每天1-3次),我会收到以下错误消息:Ruby on rails 不断获得;“打开的文件太多”;运行测试时,ruby-on-rails,rspec,Ruby On Rails,Rspec,每当我运行RSpec测试时(可能每天1-3次),我会收到以下错误消息: Errno::EMFILE: Too many open files - socket(2) for "127.0.0.1" port 9523 如果我运行rm-rftmp/*,它通常会修复一段时间的问题,但之后它又会回来 什么原因可能导致这种情况?如果应用程序打开了很多文件,但没有关闭它们,则可能会发生这种情况。文件描述符数量有限:cat/proc/sys/fs/file max。 在不需要打开的
Errno::EMFILE:
Too many open files - socket(2) for "127.0.0.1" port 9523
如果我运行rm-rftmp/*
,它通常会修复一段时间的问题,但之后它又会回来
什么原因可能导致这种情况?如果应用程序打开了很多文件,但没有关闭它们,则可能会发生这种情况。文件描述符数量有限:
cat/proc/sys/fs/file max
。
在不需要打开的文件时关闭它们,或在每次测试运行后自动删除它们:
# spec/spec_helper.rb
config.after(:suite) do # or :each or :all
Dir["#{Rails.root}/tmp/**/*"].each do |file|
File.delete(file)
end
end