Hello,

I'm using a ruby to setup an ec2 instance as part of a bootscript.  The
ruby script runs out of memory and exits with an error.  I believe this
may be related to the fact that the ruby script makes a lot of system
calls (using the backtick `).  I don't need to hang on the the output of
the system call after checking it, and I'm wondering if I should be
doing something to release resources after the forked process finishes.
Any advice is greatly appreciated.

Thanks,

Tom


Bootscript Exit:

/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/kernel/agnostics.rb:7:in
``': Cannot allocate memory - elb-describe-lbs db-beta (Errno::ENOMEM)
  from
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/kernel/agnostics.rb:7:in
``'
  from /usr/local/Scripts/bootscripts/test.rb:527:in `boot'
  from /usr/local/Scripts/bootscripts/test.rb:520:in `each'
  from /usr/local/Scripts/bootscripts/test.rb:520:in `boot'
  from
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/test_util-1.0.0/lib/test_util.rb:995:in
`test_boot'
  from /etc/init.d/ec2-run-user-data:15


pmap information taken while script is running (see large memory use in
[anon] function):

root@localhost:~# pmap 3813
3813:   /opt/ruby-enterprise-1.8.7-2010.01/bin/ruby
/etc/init.d/ec2-run-user-data
08048000    752K r-x--  /opt/ruby-enterprise-1.8.7-2010.01/bin/ruby
08104000      4K r----  /opt/ruby-enterprise-1.8.7-2010.01/bin/ruby
08105000      4K rw---  /opt/ruby-enterprise-1.8.7-2010.01/bin/ruby
08106000     64K rw---    [ anon ]
082eb000 1078028K rw---    [ anon ]
b711f000     64K r-x--  /lib/tls/i686/nosegneg/libresolv-2.10.1.so
b712f000      4K r----  /lib/tls/i686/nosegneg/libresolv-2.10.1.so
b7130000      4K rw---  /lib/tls/i686/nosegneg/libresolv-2.10.1.so
b7131000      8K rw---    [ anon ]
b7133000     20K r-x--  /lib/tls/i686/nosegneg/libnss_dns-2.10.1.so
b7138000      4K r----  /lib/tls/i686/nosegneg/libnss_dns-2.10.1.so
b7139000      4K rw---  /lib/tls/i686/nosegneg/libnss_dns-2.10.1.so
b7141000      4K rw---    [ anon ]
b714a000      8K rw---    [ anon ]
b714d000      4K rw---    [ anon ]
b7152000    104K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot_scan.so
b716c000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot_scan.so
b716d000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot_scan.so
b716e000     80K r-x--  /lib/libz.so.1.2.3.3
b7182000      4K r----  /lib/libz.so.1.2.3.3
b7183000      4K rw---  /lib/libz.so.1.2.3.3
b7184000   1204K r-x--  /lib/i686/cmov/libcrypto.so.0.9.8
b72b1000     32K r----  /lib/i686/cmov/libcrypto.so.0.9.8
b72b9000     52K rw---  /lib/i686/cmov/libcrypto.so.0.9.8
b72c6000     16K rw---    [ anon ]
b72ca000    260K r-x--  /lib/i686/cmov/libssl.so.0.9.8
b730b000      4K -----  /lib/i686/cmov/libssl.so.0.9.8
b730c000      4K r----  /lib/i686/cmov/libssl.so.0.9.8
b730d000     12K rw---  /lib/i686/cmov/libssl.so.0.9.8
b7310000     12K rw---    [ anon ]
b7313000      8K r-x--  /lib/libnss_mdns4_minimal.so.2
b7315000      4K r----  /lib/libnss_mdns4_minimal.so.2
b7316000      4K rw---  /lib/libnss_mdns4_minimal.so.2
b7317000     12K rw---    [ anon ]
b731a000      4K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/digest/sha1.so
b731b000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/digest/sha1.so
b731c000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/digest/sha1.so
b731d000      4K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/digest/md5.so
b731e000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/digest/md5.so
b731f000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/digest/md5.so
b7320000      4K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/fcntl.so
b7321000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/fcntl.so
b7322000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/fcntl.so
b7323000     12K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/digest.so
b7326000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/digest.so
b7327000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/digest.so
b7328000    256K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/openssl.so
b7368000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/openssl.so
b7369000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/openssl.so
b736a000      4K rw---    [ anon ]
b736b000     40K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/socket.so
b7375000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/socket.so
b7376000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/socket.so
b7377000      8K r-x--  /usr/lib/gconv/UTF-16.so
b7379000      4K r----  /usr/lib/gconv/UTF-16.so
b737a000      4K rw---  /usr/lib/gconv/UTF-16.so
b737b000      4K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/fast_xs.so
b737c000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/fast_xs.so
b737d000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/fast_xs.so
b737e000     16K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/strscan.so
b7382000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/strscan.so
b7383000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/strscan.so
b7384000    228K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/nkf.so
b73bd000      8K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/nkf.so
b73bf000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/nkf.so
b73c0000      4K rw---    [ anon ]
b73c1000     40K r-x--  /lib/tls/i686/nosegneg/libnss_files-2.10.1.so
b73cb000      4K r----  /lib/tls/i686/nosegneg/libnss_files-2.10.1.so
b73cc000      4K rw---  /lib/tls/i686/nosegneg/libnss_files-2.10.1.so
b73cd000     36K r-x--  /lib/tls/i686/nosegneg/libnss_nis-2.10.1.so
b73d6000      4K r----  /lib/tls/i686/nosegneg/libnss_nis-2.10.1.so
b73d7000      4K rw---  /lib/tls/i686/nosegneg/libnss_nis-2.10.1.so
b73d8000     76K r-x--  /lib/tls/i686/nosegneg/libnsl-2.10.1.so
b73eb000      4K r----  /lib/tls/i686/nosegneg/libnsl-2.10.1.so
b73ec000      4K rw---  /lib/tls/i686/nosegneg/libnsl-2.10.1.so
b73ed000      8K rw---    [ anon ]
b73ef000     28K r--s-  /usr/lib/gconv/gconv-modules.cache
b73f6000     12K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/i686-linux/iconv.so
b73f9000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/i686-linux/iconv.so
b73fa000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/i686-linux/iconv.so
b73fb000     40K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/bigdecimal.so
b7405000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/bigdecimal.so
b7406000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/bigdecimal.so
b7407000    104K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/syck.so
b7421000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/syck.so
b7422000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/syck.so
b7423000      8K rw---    [ anon ]
b7425000     84K r-x--  /lib/tls/i686/nosegneg/libpthread-2.10.1.so
b743a000      4K r----  /lib/tls/i686/nosegneg/libpthread-2.10.1.so
b743b000      4K rw---  /lib/tls/i686/nosegneg/libpthread-2.10.1.so
b743c000      8K rw---    [ anon ]
b743e000    112K r-x--  /lib/libgcc_s.so.1
b745a000      4K r----  /lib/libgcc_s.so.1
b745b000      4K rw---  /lib/libgcc_s.so.1
b745c000      4K rw---    [ anon ]
b745d000    920K r-x--  /usr/lib/libstdc++.so.6.0.13
b7543000     16K r----  /usr/lib/libstdc++.so.6.0.13
b7547000      4K rw---  /usr/lib/libstdc++.so.6.0.13
b7548000     28K rw---    [ anon ]
b754f000   1288K r-x--  /lib/tls/i686/nosegneg/libc-2.10.1.so
b7691000      8K r----  /lib/tls/i686/nosegneg/libc-2.10.1.so
b7693000      4K rw---  /lib/tls/i686/nosegneg/libc-2.10.1.so
b7694000     12K rw---    [ anon ]
b7697000    144K r-x--  /lib/tls/i686/nosegneg/libm-2.10.1.so
b76bb000      4K r----  /lib/tls/i686/nosegneg/libm-2.10.1.so
b76bc000      4K rw---  /lib/tls/i686/nosegneg/libm-2.10.1.so
b76bd000     36K r-x--  /lib/tls/i686/nosegneg/libcrypt-2.10.1.so
b76c6000      4K r----  /lib/tls/i686/nosegneg/libcrypt-2.10.1.so
b76c7000      4K rw---  /lib/tls/i686/nosegneg/libcrypt-2.10.1.so
b76c8000    156K rw---    [ anon ]
b76ef000      8K r-x--  /lib/tls/i686/nosegneg/libdl-2.10.1.so
b76f1000      4K r----  /lib/tls/i686/nosegneg/libdl-2.10.1.so
b76f2000      4K rw---  /lib/tls/i686/nosegneg/libdl-2.10.1.so
b76f3000      4K rw---    [ anon ]
b76f4000     28K r-x--  /lib/tls/i686/nosegneg/librt-2.10.1.so
b76fb000      4K r----  /lib/tls/i686/nosegneg/librt-2.10.1.so
b76fc000      4K rw---  /lib/tls/i686/nosegneg/librt-2.10.1.so
b76fd000      4K rw---    [ anon ]
b76fe000     24K r-x--  /lib/tls/i686/nosegneg/libnss_compat-2.10.1.so
b7704000      4K r----  /lib/tls/i686/nosegneg/libnss_compat-2.10.1.so
b7705000      4K rw---  /lib/tls/i686/nosegneg/libnss_compat-2.10.1.so
b7706000     16K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/stringio.so
b770a000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/stringio.so
b770b000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/stringio.so
b770c000      8K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/etc.so
b770e000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/etc.so
b770f000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/etc.so
b7710000     12K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/thread.so
b7713000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/thread.so
b7714000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/1.8/i686-linux/thread.so
b7715000    104K r-x--
/opt/ruby-enterprise-1.8.7-2010.01/lib/libtcmalloc_minimal.so.0.0.0
b772f000      4K r----
/opt/ruby-enterprise-1.8.7-2010.01/lib/libtcmalloc_minimal.so.0.0.0
b7730000      4K rw---
/opt/ruby-enterprise-1.8.7-2010.01/lib/libtcmalloc_minimal.so.0.0.0
b7731000    108K rw---    [ anon ]
b774c000      4K r-x--    [ anon ]
b774d000    108K r-x--  /lib/ld-2.10.1.so
b7768000      4K r----  /lib/ld-2.10.1.so
b7769000      4K rw---  /lib/ld-2.10.1.so
bf455000   7152K rw---    [ stack ]
 total  1092368K
-- 
Posted via http://www.ruby-forum.com/.