[Mongrel] Mongrels Hanging in mysql_adapter.rb

serty2 serty2 serty2 at gmail.com
Tue Jan 26 11:09:55 EST 2010


Hi everyone,

I have been trying to solve this problem for quite some time now and I
really don't have any further clue to investigate.

I am running a mongrel_cluster 1.0.5-2 (mongrel verison : 1.1.5-5) on a
ubuntu box with apache2 2.2.12-1ubuntu2.1

I have 4 different apps on the same box and each app has two mongrel
instances.

After a short period of time ( < 2 hours )  some of the 8 mongrel instances
just stop responding.

I read the mongrel FAQ and tried to
set ActiveRecord::Base.verification_timeout = 14400 (the mysql parameter is
set to the default 28800) in myapp/config/environments/production.rb

The problem kept happening.

I decided to lower that number, making it 60.
No more success.

I installed gdb  and the ruby macros to make sure i was in the mysql driver
while hanging and sure enough, here is the top of the BT from GDB :

/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/mysql_adapter.rb:264:in
`active?'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:136:in
`verify!'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:256:in
`checkout_and_verify'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:252:in
`checkout_existing_connection'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:186:in
`checkout'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in
`loop'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in
`checkout'",
"/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:183:in
`checkout'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:98:in
`connection'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:326:in
`retrieve_connection'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:121:in
`retrieve_connection'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:113:in
`connection'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:2934:in
`quoted_table_name'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1626:in
`construct_finder_sql'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1490:in
`find_every'",
"/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:589:in
`find'",

I figured that since I was running a packaged version of mongrel_cluster
(not the gem installed one), I should use the package version of mysql
driver for ruby.
So i did
gem uninstall mysql

and installed :
apt-get install libmysql-ruby1.8

I then restarted the mongrels and sure enough after 1h25 one of them was
hanging in the mysql_adapter.rb, showing the same backtrace as before.

I really am out of clue here and any advice / help would be much
appreciated.

I have to note that I am far from being an ROR guru and maybe the solution
to my problem is simpler than what I have been looking for, but I just don't
know where to look anymore.

Thanks for any advice / answer

Damien
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/mongrel-users/attachments/20100126/c809cb37/attachment.html>


More information about the Mongrel-users mailing list