Dav*_*d W 5 ruby jruby warbler ruby-on-rails-3 amazon-elastic-beanstalk
当一个人测试系统时,不会发生这些错误.但是通过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)...
Run Code Online (Sandbox Code Playgroud)
我们不是嵌套事务,甚至没有明确地使用它们.我发现此错误消息存在一个现有错误,但它不相关; 我们没有截断或做任何DDL工作.仅仅创建一个记录并保存它.
我们使用Rails 3.0.10,JRuby 1.6.5,activerecord-jdbcmysql-adapter,使用Warbler 1.3.2进行了警告,并通过Elastic Beanstalk在64位Tomcat 7/Amazon RDS上使用单个Mysql实例v5.1.57进行部署.我们为config.threadsafe设置了! - 这感觉就像在ActiveRecord的内容中出现某种类型的种族 - 但ActiveRecord应该在线程安全中工作,不是吗?
最后一点:我担心这是一个JRuby或Warbler问题,因为如果我们从JRuby切换到MRI Ruby 1.9,我们就无法重现这个问题.
它可能与1.2.1 中引入的此 commit有关。1.2.0 是否给您带来同样的问题?
也许我需要对支持的事务和失败的事务重新引入一些错误检查。想要在https://github.com/jruby/activerecord-jdbc-adapter/issues提交错误吗?谢谢。
| 归档时间: |
|
| 查看次数: |
566 次 |
| 最近记录: |