FWIW, these are the kinds of flaky bugs I've seen w/ various versions of the MySQL driver. The version bundled with activerecord-jdbcmysql-adapter, 5.0.4, does not have the statement cancellation timer.
If you can try version 5.0.4, see if it helps with the problem. http://github.com/nicksieger/activerecord-jdbc-adapter/raw/master/drivers/mysql/lib/mysql-connector-java-5.0.4-bin.jar /Nick On Tue, Dec 30, 2008 at 5:07 PM, Charles Oliver Nutter <[email protected]> wrote: > Today I spent some time investigating why repeated deploys of a user's app > ate progressively more and more memory on Tomcat on Sun Java 6. I managed to > get from the user a heap dump of a server that had an app deployed and > undeployed plus an explicit GC. The JRuby instance sticks around. > > It appears that almost all the rootset graphs (tracing references back to > the "root set" of live objects" involve a timer thread spun up by MySQL for > cancelling statements (the "statement cancellation timer"). When MySQL is > loaded, it starts up a thread, referenced from a static field. That thread > has a reference to its classloader, which in the case of AR-JDBC is the > JRubyClassLoader (but would be a webapp classloader anyway). Ignoring for > the moment this seems like a really bad idea (and EE dictates that you're on > your own if you dare to spin up threads inside the container), it's likely > this is the cause of tomcat+jruby+mysql memory problems over successive > deploys. > > This bug has been reported here, but not fixed: > > http://bugs.mysql.com/bug.php?id=36565 > > There is a workaround on the bug that involves using reflection to dig out > the timer thread and cancel it. That's obviously not great, and we should > lean on someone to fix this properly. In the interim, we may want to > consider modifying Warbler to do this workaround for you. > > Thoughts? > > - Charlie > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email > > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email
