Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PGError: ERROR: current transaction is aborted

Using: Rails 3.0.3 and Heroku with Postgresql.

I have been receiving numerous Exceptions such as this one:

A ActiveRecord::StatementInvalid occurred in home#index:

  PGError: ERROR:  current transaction is aborted, commands ignored until end of transaction block
: SELECT "calculation_types".* FROM "calculation_types"
  .bundle/gems/ruby/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract_adapter.rb:202:in `rescue in log'

occuring althroughout my app but always when I perform as in this case

calculation_type = CalculationType.find(params[:id])

or similar, super simple, database-requests.

My list of gems (from when I uploaded it to Heroku):

   Installing rake (0.9.2.2) 
   Installing abstract (1.0.0) 
   Installing activesupport (3.0.3) 
   Installing builder (2.1.2) 
   Installing i18n (0.6.1) 
   Installing activemodel (3.0.3) 
   Installing erubis (2.6.6) 
   Installing rack (1.2.5) 
   Installing rack-mount (0.6.14) 
   Installing rack-test (0.5.7) 
   Installing tzinfo (0.3.33) 
   Installing actionpack (3.0.3) 
   Installing mime-types (1.19) 
   Installing polyglot (0.3.3) 
   Installing treetop (1.4.10) 
   Installing mail (2.2.19) 
   Installing actionmailer (3.0.3) 
   Installing arel (2.0.10) 
   Installing activerecord (3.0.3) 
   Installing activeresource (3.0.3) 
   Installing acts_as_tree_rails3 (0.1.0) 
   Installing breadcrumbs_on_rails (2.2.0) 
   Installing yamler (0.1.0) 
   Installing configatron (2.9.1) 
   Installing daemons (1.1.9) 
   Installing eventmachine (1.0.0) with native extensions 
   Installing exception_notification (2.4.1) 
   Installing friendly_id (4.0.0.beta12) 
   Installing i18n_routing (0.6.1) 
   Installing thor (0.14.6) 
   Installing railties (3.0.3) 
   Installing jquery-rails (1.0.19) 
   Installing pg (0.14.1) with native extensions 
   Installing postgres-pr (0.6.3) 
   Installing rack-rewrite (1.0.2) 
   Installing rack-timeout (0.0.3) 
   Using bundler (1.0.7) 
   Installing rails (3.0.3) 
   Installing thin (1.5.0) with native extensions 
   Installing time_diff (0.2.2) 

Facts

  • The errors are intermittent and I cannot reproduce them.
  • It seems to happen at most of the time when search engine bots try to access the page

Questions

Q1. I don't even know where to start trouble shooting this (what other parts of my code would you need?). What should be my first steps?

Q2. Are there any known problems with Rails 3.0.3 and Postgresql?

  • What else do you need to help me trouble shoot?
like image 876
Christoffer Avatar asked Sep 25 '12 17:09

Christoffer


People also ask

Which syntax is used to abort the current transaction in postgresql?

Use COMMIT to successfully terminate a transaction. Issuing ABORT outside of a transaction block emits a warning and otherwise has no effect.

How do I rollback a transaction in postgresql?

To roll back a prepared transaction, you must be either the same user that executed the transaction originally, or a superuser. But you do not have to be in the same session that executed the transaction. This command cannot be executed inside a transaction block. The prepared transaction is rolled back immediately.


2 Answers

I just restarted my server. This cancelled the transaction.

like image 94
Travis Glover Avatar answered Oct 21 '22 06:10

Travis Glover


This error is never your real problem. It occurs because you send a statement in a transaction that has already failed because of an upstream error. If you see a lot of these errors you want to go back in your log to find the first error in the stream, and it will be a different error.

Find this, and fix it. Note that this just means you are continuing transactions after other errors. The other errors are where the problems lie.

like image 17
Chris Travers Avatar answered Oct 21 '22 07:10

Chris Travers