stephenfewer / grinder

Grinder is a system to automate the fuzzing of web browsers and the management of a large number of crashes.
BSD 3-Clause "New" or "Revised" License
415 stars 131 forks source link

`spawn': Resource temporarily unavailable #63

Open argp opened 8 years ago

argp commented 8 years ago

Sometimes, quite often actually, I get the following (Win7x64 both on physical and VM systems):

[+G+] Killing the debugger process 5308 after 5 minutes.
grinder.rb:190:in `spawn': Resource temporarily unavailable - C:\Ruby200-x64\bin\ruby.exe -I. .\browser\firefox.rb --config=config --path=/grinder false (Errno::EAGAIN)
        from grinder.rb:190:in `run'
        from grinder.rb:269:in `<main>'

Any ideas?

ca0nguyen commented 8 years ago

I met this problem sometime ago. There're many issues can lead to exception Errno::EAGAIN. It's seem that the debugger process and firefox.exe are not really terminated yet. Fuzzer can cause process very hard too kill, and firefox.exe always runs with single instance. Or this can be problem in RubyVM itself (grinder.rb process), this can be ruby use too much memory (x86 specially). Grinder works perfect with latest ruby 2.2, I think upgrade ruby may help too.

You can add more code to cleanup these process or add wait time for this exception.

rescue Errno::EAGAIN => e
    print_error("#{e.messages}. Wait in 10 seconds then try again")
    @debugger_pid = nil
    sleep 10
end

PS: I read this issue while reading your work great on Firefox. Your Shadow is awesome too :).