Backquote fail to allocate memory even if you have free memory.
When your ruby process takes more memory then you have free, backquote fail to run the most simple command. Same issue with Open3.popen3. Kernel#system works fine. I don't know ruby's internal, but I think it is something related with pipe_open.
I am trying this script in Ubuntu Server 13.10 64 bits with 256 MB no swap at VirtualBox.
Thank you for your reporting.
I cannot reproduce this, but I doubt your fork.rb have object leak. String objects are accumulated to local variable array at line.12. I think it's regular behavior.
I am forcing memory usage through inserting string at an array. Actually, something like this is happing at another project I am working. My server has something about 1.6GB memory, my Ruby process is using 1.2GB and it crashes when it tries to call a console utility even with 400MB free.
If you want I can upload my VirtualBox image at S3 and you can see 'fork.rb' failing.
I am forcing memory usage through inserting string at an array. Actually, something like this is happing at another project I am working. My server has something about 1.6GB memory, my Ruby process is taking 1.2GB and it crashes when it tries to call a console utility even with 400MB free.
If you want I can upload my VirtualBox image at S3 and you can see 'fork.rb' failing.