5

これらのエラーは、1 人の個人がシステムをテストした場合には発生しません。しかし、jmeter テストを使用すると、次の行に沿っていくつかのエラーをかなり確実に再現できます。

ActiveRecord::JDBCError: SAVEPOINT active_record_1 does not exist: ROLLBACK TO SAVEPOINT active_record_1

Stack:

    gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract_adapter.rb:207:in `log'
    gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract_adapter.rb:200:in `log'
    gems/gems/activerecord-jdbc-adapter-1.2.1/lib/arjdbc/jdbc/adapter.rb:208:in `execute'
    gems/gems/activerecord-jdbc-adapter-1.2.1/lib/arjdbc/mysql/adapter.rb:156:in `rollback_to_savepoint'
    gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract/database_statements.rb:179:in `transaction'
    gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract/database_statements.rb:171:in `transaction'
    gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:207:in `transaction'
    gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:290:in `with_transaction_returning_status'
    gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:240:in `save'
    gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:251:in `rollback_active_record_state!'
    gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:239:in `save'
    ...(our code that simply calls save on a new instance of a model class)...

トランザクションをネストしたり、明示的に使用したりすることはありません。このエラー メッセージに関する既存のバグが 1 つありますが、関連性はありません。切り詰めたり、DDL 作業を行ったりすることはありません。レコードを作成して保存するだけです。

Rails 3.0.10、JRuby 1.6.5、activerecord-jdbcmysql-adapter を使用し、Warbler 1.3.2 でウォーブリングし、単一の Mysql インスタンス v5.1.57 を使用して 64 ビット Tomcat 7/Amazon RDS に Elastic Beanstalk 経由でデプロイします。config.threadsafe の設定が完了しました。- そして、これは ActiveRecord の腸内である種の競争のように感じます - しかし、ActiveRecord はスレッドセーフで動作するはずですよね?

最後に、これは JRuby または Warbler の問題ではないかと心配しています。JRuby から MRI Ruby 1.9 に切り替えると、この問題を再現できないからです。

4

1 に答える 1

1

これは、1.2.1で導入されたこのコミットに関連している可能性があります。1.2.0でも同じ問題が発生しますか?

たぶん、サポートされているトランザクションと失敗したトランザクションのエラーチェックを再導入する必要があります。https://github.com/jruby/activerecord-jdbc-adapter/issuesでバグを報告してください。ありがとう。

于 2011-12-08T16:29:32.887 に答える