2012-02-29 10 views
7

आज सुबह मैं निम्न त्रुटि हो रहा है:RSpec और इंजीनियर त्रुटि: बहुत अधिक फ़ाइलें खुली

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)>' 

चश्मा तो लानत धीमी गति से कर रहे हैं (यहां तक ​​कि 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 
+0

मुझे एहसास हुआ कि यह त्रुटि स्पार्क का उपयोग करते समय होती है: rspec --drb spec/models/deal_spec.rb – rtacconi

उत्तर

10

बहुत अधिक फ़ाइलें खुली, एक OS त्रुटि है जिसका अर्थ है कि OS फ़ाइल हैंडल की समाप्त हो गया है। लिनक्स आमतौर पर एक कठिन सीमा है कि एक ही समय में कितनी फाइलें खोली जा सकती हैं, और यह सीमा तक पहुंच गई है।

सीमा को अस्थायी रूप से बढ़ाने के लिए, पहले ulimit -n 8192 चलाएं और फिर चश्मा चलाएं।

सीमा को बढ़ाने के लिए, follow these instructions, और उपयोगकर्ता खाते के नाम के साथ nginx विकल्प जिसे आप चश्मा चलाने के लिए उपयोग कर रहे हैं।

संबंधित मुद्दे