Strange Thread related errors

Eric Wong normalperson at
Thu Jan 7 15:13:40 EST 2010

Michael Guterl <mguterl at> wrote:
> Our Rails app has started raising exceptions (caught by hoptoad
> thankfully) and I can only imagine they're related to unicorn.  I only
> *think* the errors are occurring on the request after we deploy, which
> upgrades the Unicorn process.  I say this because the errors are
> coming from many different actions, but I haven't been able to
> reproduce.
> After the most recent batch of errors, I upgraded from 0.95.1 to
> 0.95.3, but we have not deployed again.
> ThreadError: stopping only thread note: use sleep to stop forever
> /usr/local/lib/ruby/1.8/monitor.rb:285:in `stop'
> /usr/local/lib/ruby/1.8/monitor.rb:285:in `mon_acquire'
> /usr/local/lib/ruby/1.8/monitor.rb:214:in `mon_enter'
> /usr/local/lib/ruby/1.8/monitor.rb:240:in `synchronize'
> /usr/local/lib/ruby/1.8/logger.rb:496:in `write'
> /usr/local/lib/ruby/1.8/logger.rb:326:in `add'
> /usr/local/lib/ruby/1.8/logger.rb:374:in `info'
> /home/deploy/public_html/rm/releases/20100107153636/vendor/plugins/newrelic_rpm/lib/new_relic/agent/agent.rb:46:in
> `ensure_worker_thread_started'

Hi Michael,

It looks like there's a background thread with the NewRelic plugin...

With "preload_app true", then any threads spawned in the master will die
in workers.  This is true for Ruby 1.8 green threads by design.  With
1.9, it's not even to share native POSIX threads between processes.

So in your after_fork hook, you need to restart threads inside
each worker.

Eric Wong

More information about the mongrel-unicorn mailing list