[Mongrel] Random(?) action hanging

Steven Lumos steven at lumos.us
Mon Sep 18 16:22:34 EDT 2006


Is this the behavior that supposedly indicates a problem with a
particular action? Mongrel in development mode randomly hangs on
random actions.  Further requests cause USR1 logs like:

Mon Sep 18 13:04:03 PDT 2006: 0 threads sync_waiting for /, 2 still active in mongrel.
Mon Sep 18 13:07:52 PDT 2006: 1 threads sync_waiting for /public/stylesheets/table.css, 3 still active in mongrel.
Mon Sep 18 13:08:21 PDT 2006: 2 threads sync_waiting for /, 4 still active in mongrel.

0 threads sync_waiting? Isn't that good? Sync waiting for a file?
Is that supposed to happen?

I thought that the USR1 output was supposed to help point out which
action(s) had a problem, but the (random) action that actually caused
the hang is never displayed, just whatever was the latest request
after the hang.

This doesn't seem to happen in production mode, at least it hasn't so
far.  It happens every few minutes in development, and sending INT to
the process causes this:

Thread #<Thread:0x3388f10 sleep> is too old, killing.Mon Sep 18 13:16:44 PDT 2006: Error calling Dispatcher.dispatch #<Sync_m::Err::UnknownLocker: Thread(#<Thread:0x3388f10 run>) not locked.>
/usr/local/lib/ruby/1.8/sync.rb:57:in `Fail'
/usr/local/lib/ruby/1.8/sync.rb:63:in `Fail'
/usr/local/lib/ruby/1.8/sync.rb:183:in `sync_unlock'
/usr/local/lib/ruby/1.8/sync.rb:231:in `synchronize'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel/rails.rb:83:in `process'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:580:in `process_client'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:579:in `process_client'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:686:in `run' 
/usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:686:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:673:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel/configurator.rb:267:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel/configurator.rb:266:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/bin/mongrel_rails:127:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel/command.rb:211:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/bin/mongrel_rails:231/usr/local/bin/mongrel_rails:18
Thread #<Thread:0x338df38 sleep> is too old, killing.Mon Sep 18 13:16:44 PDT 2006: Error calling Dispatcher.dispatch #<Sync_m::Err::UnknownLocker: Thread(#<Thread:0x338df38 run>) not locked.>
[same backtrace as above]

Has anybody else even seen this?

Steve



More information about the Mongrel-users mailing list