This morning I am having the following error:
今天早上我遇到以下错误:
14) Deal on creation sets frozen to false or nil
Failure/Error: Unable to find matching line from backtrace
Errno::EMFILE:
Too many open files - identify -format %wx%h '/var/folders/BJ/BJcTANEBFxWcan28U2YEKE+++TI/-Tmp-/stream20120229-36866-4l1sa8.gif[0]'
# ./spec/support/blueprints.rb:29:in `block in <top (required)>'
Specs are so damn slow (even with spork) so they are useless. It takes 9 minutes to run 20 examples in a model. Line 29 in blueprint.rb is between the following blocks:
规格太慢了(即使用spork),所以它们没用。在模型中运行20个示例需要9分钟。 blueprint.rb中的第29行位于以下块之间:
Company.blueprint do
name { "Office Tronic#{rand(10 ** 10)}" }
website { 'officetronic.com' }
subdomain {"officetronic#{rand(10 ** 10)}"}
facebook { 'officetronic' }
twitter { 'officetronic' }
description { 'We are a company dealing with electronics and office supply' }
address_line1 {'34 John Street'}
address_line2 {''}
post_code { 'EC2 3RR' }
phone { '01 343243434' }
city { 'London' }
your_name { 'john Doe' }
font_colour {'000000'}
logo_file_name { 'mylogo.png' }
logo_content_type { "application/png" }
logo_file_size { 100 }
end
Deal.blueprint do
company {Company.make!}
title { '50% off for web sites dev' }
description { '50% of discount...' }
quantity { 1 }
min_quantity { 0 }
start_time { Chronic.parse('one month') }
end_time { Chronic.parse('two months') }
price { 1500 } # in cents
shipping_cost{ 100 } # in cents
published { true }
small_print { 'Some text' }
show_map { true }
post_code { 'E1 6BJ' }
rrp {15}
end
1 个解决方案
#1
11
Too many open files is an OS error, meaning that the OS has run out of file handles. Linux usually has a hard limit on how many files can be open at the same time, and that limit has been reached.
打开的文件太多是操作系统错误,这意味着操作系统已用完文件句柄。 Linux通常对可以同时打开的文件数量有严格限制,并且已达到该限制。
To increase the limit temporarily, run ulimit -n 8192
first and then run the specs.
要临时增加限制,请先运行ulimit -n 8192,然后运行规范。
To increase the limit permanently, follow these instructions, and substitute nginx
with the name of the user account that you're using to run the specs.
要永久性地增加限制,请按照这些说明操作,并将nginx替换为您用于运行规范的用户帐户的名称。
#1
11
Too many open files is an OS error, meaning that the OS has run out of file handles. Linux usually has a hard limit on how many files can be open at the same time, and that limit has been reached.
打开的文件太多是操作系统错误,这意味着操作系统已用完文件句柄。 Linux通常对可以同时打开的文件数量有严格限制,并且已达到该限制。
To increase the limit temporarily, run ulimit -n 8192
first and then run the specs.
要临时增加限制,请先运行ulimit -n 8192,然后运行规范。
To increase the limit permanently, follow these instructions, and substitute nginx
with the name of the user account that you're using to run the specs.
要永久性地增加限制,请按照这些说明操作,并将nginx替换为您用于运行规范的用户帐户的名称。