2012-09-25 7 views
20

Rails 3.0.3とHeroku with Postgresql。PGError:ERROR:現在のトランザクションが中止されました

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' 

私のアプリalthroughout occuringが、常に私は、この場合のように実行したときに

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

または、同様の超シンプル、データベース - :私は、このようなこの一つとして、多くの例外を受けてきた

リクエスト。

(私は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) 

な事実

  • エラーが断続的であり、私はそれらを再現することはできません。
  • 検索エンジンのロボットがページに

質問

Q1にアクセスしようとするほとんどの時間で起こるようです。私はこの問題をどこで解決するかを知りません(コードの他の部分は必要ですか?)。私の最初のステップは何ですか?

Q2。 Rails 3.0.3とPostgreSQLには既知の問題はありますか?

  • トラブルシューティングに他に何が必要ですか?
+0

'params'の前に': 'を削除すると、' comput_type = CalculationType.find(params [:id]) 'を読むべきです – nmott

+0

ありがとう、実際はテキストのタイプ-oでした。コピーして貼り付けます)、実際にはコードには存在しません。今私の質問から削除しました。 – Christoffer

+0

あなたがActiveRecord :: Transactionを使用している場合、チェックアウトhttp://apidock.com/rails/ActiveRecord/Transactions/ClassMethods –

答えて

14

このエラーは決してあなたの本当の問題ではありません。これは、上流エラーのためにすでに失敗したトランザクションで文を送信するために発生します。これらのエラーが多数表示される場合は、ログに戻ってストリームの最初のエラーを見つける必要があります。これは別のエラーになります。

これを見つけて修正します。これは単に他のエラーの後でトランザクションを継続していることを意味しています。他のエラーは、問題がどこにあるかです。

+10

rake db:test:私の問題を修正する準備をする必要がありました。私はこれが誰かを助けることを望む。 –

+1

私はその理由を知っています。しかし、どのようにそれを渡す?トランザクションを停止して終了するにはどうすればいいですか?理由を探す必要はありません。ちょうどその状態を終了します。 – Green

0

CalculationType.allまたはCalculationType.firstエラーが発生することはありますか?レールコンソールで

REINDEX TABLE <table_name> 

のか:あなたは、このモデルから一部のデータにアクセスできる場合

、その問題を解決することができ、あなたのテーブルを再インデックス、これを試して

ActiveRecord::Base.connection.execute("reindex table <table_name>") 

を私は同様の問題を抱えていましたしばらく前に、それが助けてくれることを願う

18

私はサーバを再起動しました。これによりトランザクションがキャンセルされました。

関連する問題