CLONE -JRoR memory leak on tomcat
---------------------------------
Key: JRUBY-4996
URL: http://jira.codehaus.org/browse/JRUBY-4996
Project: JRuby
Issue Type: Bug
Components: Rails WAR Deployment
Affects Versions: JRuby 1.1.6
Environment: Mac OS X 10.5.6
Reporter: Rakesh Arora
Assignee: Charles Oliver Nutter
- Downloaded apache tomcat 6.0.18
- unzipped to ~/apps/tomcat
- modified bin/setenv.sh
{noformat}
mlemacbook:bin milep$ cat setenv.sh
export
JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"
export JAVA_OPTS="-server
-Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true"
export CATALINA_OPTS="
-Xms256m
-Xmx512m
-XX:PermSize=128m
-XX:MaxPermSize=256m
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=7070
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"
mlemacbook:bin milep$ chmod a+x *.sh
mlemacbook:rails milep$ java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06-153)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_07-b06-57, mixed mode)
mlemacbook:rails milep$ jruby -v
jruby 1.1.6 (ruby 1.8.6 patchlevel 114) (2008-12-18 rev 6586) [x86_64-java]
mlemacbook:rails milep$ jruby -S rails -v
Rails 2.2.2
mlemacbook:rails milep$ jruby -S gem update --system
Updating RubyGems
Nothing to update
mlemacbook:rails milep$ jruby -S gem list --local
*** LOCAL GEMS ***
actionmailer (2.2.2)
actionpack (2.2.2)
activerecord (2.2.2)
activerecord-jdbc-adapter (0.9)
activerecord-jdbcmysql-adapter (0.9)
activeresource (2.2.2)
activesupport (2.2.2)
builder (2.1.2)
capistrano (2.5.2)
capistrano-ext (1.2.1)
ci_reporter (1.5.2)
echoe (3.0.2)
glassfish (0.9.1)
highline (1.5.0)
hoe (1.8.2)
jdbc-mysql (5.0.4)
jruby-openssl (0.3)
net-scp (1.0.1)
net-sftp (2.0.1)
net-ssh (2.0.4)
net-ssh-gateway (1.0.0)
rack (0.4.0)
rails (2.2.2)
rake (0.8.3)
rspec (1.1.11)
rspec-rails (1.1.11)
rubyforge (1.0.1)
rubyist-aasm (2.0.2)
sources (0.0.1)
warbler (0.9.12)
mlemacbook:rails milep$ jruby -S rails memtest
mlemacbook:rails milep$ cd memtest
mlemacbook:memtest milep$ jruby -S warble config
cp
/usr/local/jruby-trunk/lib/ruby/gems/1.8/gems/warbler-0.9.12/generators/warble/templates/warble.rb
config/warble.rb
mlemacbook:memtest milep$ jruby -S warble pluginize
Unpacked gem:
'/Users/milep/projects/rails/memtest/vendor/plugins/warbler-0.9.12'
mlemacbook:memtest milep$ ls vendor/plugins/warbler-0.9.12/lib/
jruby-complete-1.1.6.jar warbler
jruby-rack-0.9.3.jar warbler.rb
mlemacbook:memtest milep$ nano config/database.yml
mlemacbook:memtest milep$ cat config/database.yml
development:
adapter: jdbcmysql
encoding: utf8
database: memtest_development
username: root
password:
host: 127.0.0.1
mlemacbook:memtest milep$ jruby -S rake db:create
(in /Users/milep/projects/rails/memtest)
{noformat}
uncommented following lines from config/warble.rb
{noformat}
config.gems += ["activerecord-jdbcmysql-adapter", "jruby-openssl"]
config.gems["rails"] = "2.2.2"
{noformat}
{noformat}
mlemacbook:memtest milep$ jruby -S warble war RAILS_ENV=development
...
mlemacbook:memtest milep$ cp memtest.war ~/apps/tomcat/webapps/
{noformat}
open http://localhost:8080/memtest/
{noformat}
About your application's environment
Ruby version 1.8.6 (java)
RubyGems version 1.3.1
Rails version 2.2.2
Active Record version 2.2.2
Action Pack version 2.2.2
Active Resource version 2.2.2
Action Mailer version 2.2.2
Active Support version 2.2.2
Application root /Users/milep/apps/tomcat/webapps/memtest/WEB-INF
Environment development
Database adapter jdbcmysql
Database schema version 0
{noformat}
{noformat}
mlemacbook:memtest milep$ cat touch.rb
require 'net/http'
50.times { |i|
`touch /Users/milep/apps/tomcat/webapps/memtest.war`
p "touched #{i}"
sleep(120)
t1 = Time.now
res = Net::HTTP.get_response(URI.parse('http://localhost:8080/memtest/'))
p "res.code=#{res.code} time: #{Time.now - t1}"
sleep(5)
}
mlemacbook:memtest milep$ ruby touch.rb
{noformat}
And wait for the out of memory error, takes about 30 mins with these settings.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email