Rails 5.1,Errno :: EMFILE:太多打开的文件 - getcwd
问题描述:
在我运行我的整个/ spec目录时,我在过去几天开始看到这个错误。我怀疑它揭示了我的测试状态 - 它是随机发生的。我的直觉是它可能是rails_helper.rb
中的配置问题。Rails 5.1,Errno :: EMFILE:太多打开的文件 - getcwd
Errno::EMFILE:
Too many open files - getcwd
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/carrierwave-0.11.2/lib/carrierwave/sanitized_file.rb:115:in `expand_path'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/carrierwave-0.11.2/lib/carrierwave/sanitized_file.rb:115:in `path'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/carrierwave-0.11.2/lib/carrierwave/sanitized_file.rb:146:in `exists?'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/carrierwave-0.11.2/lib/carrierwave/sanitized_file.rb:95:in `size'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/carrierwave-0.11.2/lib/carrierwave/sanitized_file.rb:137:in `empty?'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/carrierwave-0.11.2/lib/carrierwave/uploader/cache.rb:131:in `cache!'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/carrierwave-0.11.2/lib/carrierwave/mount.rb:329:in `cache'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/carrierwave-0.11.2/lib/carrierwave/mount.rb:163:in `attachment='
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/carrierwave-base64-2.5.3/lib/carrierwave/base64/adapter.rb:26:in `block in mount_base64_uploader'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:16:in `public_send'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:16:in `block (2 levels) in object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:15:in `each'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:15:in `block in object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:14:in `tap'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:14:in `object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluation.rb:12:in `object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/strategy/create.rb:9:in `result'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory.rb:42:in `run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory_runner.rb:29:in `block in run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/notifications.rb:168:in `instrument'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory_runner.rb:28:in `run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/strategy/create.rb:5:in `association'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluator.rb:33:in `association'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute/association.rb:19:in `block in to_proc'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluator.rb:77:in `instance_exec'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluator.rb:77:in `block in define_attribute'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:56:in `get'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:16:in `block (2 levels) in object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:15:in `each'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:15:in `block in object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:14:in `tap'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:14:in `object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluation.rb:12:in `object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/strategy/create.rb:9:in `result'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory.rb:42:in `run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory_runner.rb:29:in `block in run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/notifications.rb:168:in `instrument'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory_runner.rb:28:in `run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/strategy/create.rb:5:in `association'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluator.rb:33:in `association'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute/association.rb:19:in `block in to_proc'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluator.rb:77:in `instance_exec'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluator.rb:77:in `block in define_attribute'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:56:in `get'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:16:in `block (2 levels) in object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:15:in `each'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:15:in `block in object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:14:in `tap'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:14:in `object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluation.rb:12:in `object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/strategy/create.rb:9:in `result'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory.rb:42:in `run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory_runner.rb:29:in `block in run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/notifications.rb:168:in `instrument'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory_runner.rb:28:in `run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/strategy/create.rb:5:in `association'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluator.rb:33:in `association'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute/association.rb:19:in `block in to_proc'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluator.rb:77:in `instance_exec'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluator.rb:77:in `block in define_attribute'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:56:in `get'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:16:in `block (2 levels) in object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:15:in `each'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:15:in `block in object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:14:in `tap'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:14:in `object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluation.rb:12:in `object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/strategy/create.rb:9:in `result'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory.rb:42:in `run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory_runner.rb:29:in `block in run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/notifications.rb:168:in `instrument'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory_runner.rb:28:in `run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/strategy/create.rb:5:in `association'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluator.rb:33:in `association'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute/association.rb:19:in `block in to_proc'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluator.rb:77:in `instance_exec'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluator.rb:77:in `block in define_attribute'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:56:in `get'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:16:in `block (2 levels) in object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:15:in `each'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:15:in `block in object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:14:in `tap'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/attribute_assigner.rb:14:in `object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/evaluation.rb:12:in `object'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/strategy/create.rb:9:in `result'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory.rb:42:in `run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory_runner.rb:29:in `block in run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/notifications.rb:168:in `instrument'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/factory_runner.rb:28:in `run'
# /Users/fred/.rvm/gems/ruby-2.4.1/gems/factory_girl-4.8.0/lib/factory_girl/strategy_syntax_method_registrar.rb:20:in `block in define_singular_strategy_method'
堆栈跟踪总是相同的。我无法在我的代码中明确地看到任何地方正在打开文件。
我最近实施DatabaseCleaner使用下列选项:
config.use_transactional_fixtures = false
config.before(:each) do
Sidekiq::Worker.clear_all
end
config.before(:suite) do
DatabaseCleaner.clean_with(:truncation)
RedisCache.new.flushdb
end
config.before(:each) do
DatabaseCleaner.strategy = :transaction
end
config.before(:each) do
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
答
他们有这个问题,Carrierwave 0.5.8
连接。
的post为14 /三月/ 2012,因此可以肯定的是过时的
我可以证实,carrierwave直到0.5.7正常工作。只有0.5.8导致这个问题。今晚晚些时候我将在carrierwave上发布一个问题。
但是你有Carrierwave 0.11.2