Hi
Today I got an alert mail from my watcher script, telling me that there was no
Mongrel running, and that it started one (so the site was down for a few
seconds.)
This is the first time I got this error (AFAICS), but I''d like to
resolve and
prevent it for the future.
From mongrel.log:
** Starting Mongrel listening at 0.0.0.0:foo
** Starting Rails with production environment...
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready. TERM => stop. USR2 => restart. INT => stop (no
restart).
** Rails signals registered. HUP => reload (without restart). It might not
work well.
** Mongrel available at 0.0.0.0:foo
** Writing PID file to
/home/foo/skatestuff_freebox/releases/20080319193713/tmp/pids/dispatch.foo.pid
/home/foo/skatestuff_freebox/releases/20080319193713/vendor/rails/activerecord/lib/active_record/transactions.rb:76:in
`
transaction'': Transaction aborted
(ActiveRecord::Transactions::TransactionError)
from
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in
`call''
from
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in
`join''
from
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in
`join''
from
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in
`each''
from
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in
`join''
from
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:136:in
`run''
from
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/command.rb:211:in
`run''
from
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:243
from /usr/local/bin/mongrel_rails:16:in `load''
from /usr/local/bin/mongrel_rails:16
"Transaction aborted" is in
activerecord/lib/active_record/transactions.rb:
module ClassMethods
def transaction(&block)
previous_handler = trap(''TERM'') { raise
TransactionError, "Transaction aborted" }
increment_open_transactions
begin
connection.transaction(Thread.current[''start_db_transaction''],
&block)
ensure
decrement_open_transactions
trap(''TERM'', previous_handler)
end
end
[...]
Above this, there''s
"Both Base#save and Base#destroy come wrapped in a transaction [...]"
and
"Also have in mind that exceptions thrown within a transaction block will
be
propagated [...], so you should be ready to catch those in your application
code."
The site is not public yet (there still is a site-wide password), so I can be
quite sure that there was no save or destroy called in my app code.
(By the way, in config/environments/production.rb I have
config.log_level = :warn
but the error was not logged in log/production.log .
And in in config/environment.rb I have
config.action_controller.session_store = :active_record_store
)
Could it be that the error occured when some session data was saved?
In actionpack/lib/action_controller/session/active_record_store.rb there is
def update
if @session
ActiveRecord::Base.silence { @session.save }
end
end
The "silence" part would explain why there is no error message in
the production.log .
Not sure whether I''m on the right track ...
Anyways: How to prevent this error in the future?
Tobi
--
http://www.rubynaut.com/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Hi Any idea how to prevent this error? Tobi On Fri 2008-04-04 Tobi Reif wrote:> Hi > > Today I got an alert mail from my watcher script, telling me that there was no > Mongrel running, and that it started one (so the site was down for a few > seconds.) > > This is the first time I got this error (AFAICS), but I''d like to resolve and > prevent it for the future. > > From mongrel.log: > > ** Starting Mongrel listening at 0.0.0.0:foo > ** Starting Rails with production environment... > ** Rails loaded. > ** Loading any Rails specific GemPlugins > ** Signals ready. TERM => stop. USR2 => restart. INT => stop (no restart). > ** Rails signals registered. HUP => reload (without restart). It might not work well. > ** Mongrel available at 0.0.0.0:foo > ** Writing PID file to > /home/foo/skatestuff_freebox/releases/20080319193713/tmp/pids/dispatch.foo.pid > /home/foo/skatestuff_freebox/releases/20080319193713/vendor/rails/activerecord/lib/active_record/transactions.rb:76:in ` > transaction'': Transaction aborted (ActiveRecord::Transactions::TransactionError) > from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in `call'' > from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in `join'' > from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in `join'' > from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in `each'' > from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:293:in `join'' > from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:136:in `run'' > from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/command.rb:211:in `run'' > from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:243 > from /usr/local/bin/mongrel_rails:16:in `load'' > from /usr/local/bin/mongrel_rails:16 > > "Transaction aborted" is in activerecord/lib/active_record/transactions.rb: > > module ClassMethods > def transaction(&block) > previous_handler = trap(''TERM'') { raise TransactionError, "Transaction aborted" } > increment_open_transactions > > begin > connection.transaction(Thread.current[''start_db_transaction''], &block) > ensure > decrement_open_transactions > trap(''TERM'', previous_handler) > end > end > [...] > > Above this, there''s > "Both Base#save and Base#destroy come wrapped in a transaction [...]" > and > "Also have in mind that exceptions thrown within a transaction block will be > propagated [...], so you should be ready to catch those in your application > code." > > The site is not public yet (there still is a site-wide password), so I can be > quite sure that there was no save or destroy called in my app code. > > (By the way, in config/environments/production.rb I have > > config.log_level = :warn > > but the error was not logged in log/production.log . > > And in in config/environment.rb I have > > config.action_controller.session_store = :active_record_store > ) > > Could it be that the error occured when some session data was saved? > > In actionpack/lib/action_controller/session/active_record_store.rb there is > > def update > if @session > ActiveRecord::Base.silence { @session.save } > end > end > > The "silence" part would explain why there is no error message in > the production.log . > > Not sure whether I''m on the right track ... > > Anyways: How to prevent this error in the future? > > Tobi > > -- > http://www.rubynaut.com/ >-- http://www.rubynaut.com/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 8 Apr 2008, at 09:59, Tobi Reif wrote:> > Hi > > Any idea how to prevent this error? > > Tobi > > On Fri 2008-04-04 Tobi Reif wrote: >> Hi >> >> Today I got an alert mail from my watcher script, telling me that >> there was no >> Mongrel running, and that it started one (so the site was down for >> a few >> seconds.) >> >> This is the first time I got this error (AFAICS), but I''d like to >> resolve and >> prevent it for the future.Can you figure out from your logs what your server was doing when this happened? Could anything else have sent a TERM signal to your mongel (eg something that kills processes if they are using excessive memory? Fred>> >> >> From mongrel.log: >> >> ** Starting Mongrel listening at 0.0.0.0:foo >> ** Starting Rails with production environment... >> ** Rails loaded. >> ** Loading any Rails specific GemPlugins >> ** Signals ready. TERM => stop. USR2 => restart. INT => stop (no >> restart). >> ** Rails signals registered. HUP => reload (without restart). It >> might not work well. >> ** Mongrel available at 0.0.0.0:foo >> ** Writing PID file to >> /home/foo/skatestuff_freebox/releases/20080319193713/tmp/pids/ >> dispatch.foo.pid >> /home/foo/skatestuff_freebox/releases/20080319193713/vendor/rails/ >> activerecord/lib/active_record/transactions.rb:76:in ` >> transaction'': Transaction aborted >> (ActiveRecord::Transactions::TransactionError) >> from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/ >> mongrel/configurator.rb:293:in `call'' >> from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/ >> mongrel/configurator.rb:293:in `join'' >> from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/ >> mongrel/configurator.rb:293:in `join'' >> from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/ >> mongrel/configurator.rb:293:in `each'' >> from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/ >> mongrel/configurator.rb:293:in `join'' >> from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/ >> mongrel_rails:136:in `run'' >> from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/ >> mongrel/command.rb:211:in `run'' >> from /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/ >> mongrel_rails:243 >> from /usr/local/bin/mongrel_rails:16:in `load'' >> from /usr/local/bin/mongrel_rails:16 >> >> "Transaction aborted" is in activerecord/lib/active_record/ >> transactions.rb: >> >> module ClassMethods >> def transaction(&block) >> previous_handler = trap(''TERM'') { raise TransactionError, >> "Transaction aborted" } >> increment_open_transactions >> >> begin >> >> connection.transaction(Thread.current[''start_db_transaction''], >> &block) >> ensure >> decrement_open_transactions >> trap(''TERM'', previous_handler) >> end >> end >> [...] >> >> Above this, there''s >> "Both Base#save and Base#destroy come wrapped in a transaction [...]" >> and >> "Also have in mind that exceptions thrown within a transaction >> block will be >> propagated [...], so you should be ready to catch those in your >> application >> code." >> >> The site is not public yet (there still is a site-wide password), >> so I can be >> quite sure that there was no save or destroy called in my app code. >> >> (By the way, in config/environments/production.rb I have >> >> config.log_level = :warn >> >> but the error was not logged in log/production.log . >> >> And in in config/environment.rb I have >> >> config.action_controller.session_store = :active_record_store >> ) >> >> Could it be that the error occured when some session data was saved? >> >> In actionpack/lib/action_controller/session/active_record_store.rb >> there is >> >> def update >> if @session >> ActiveRecord::Base.silence { @session.save } >> end >> end >> >> The "silence" part would explain why there is no error message in >> the production.log . >> >> Not sure whether I''m on the right track ... >> >> Anyways: How to prevent this error in the future? >> >> Tobi >> >> -- >> http://www.rubynaut.com/ >> > > -- > http://www.rubynaut.com/ > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---