Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在rails3/jruby中,什么会间歇性地导致此错误?保存点活动记录1不存在_Ruby_Ruby On Rails 3_Jruby_Warbler_Amazon Elastic Beanstalk - Fatal编程技术网

在rails3/jruby中,什么会间歇性地导致此错误?保存点活动记录1不存在

在rails3/jruby中,什么会间歇性地导致此错误?保存点活动记录1不存在,ruby,ruby-on-rails-3,jruby,warbler,amazon-elastic-beanstalk,Ruby,Ruby On Rails 3,Jruby,Warbler,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

当单个测试系统时,不会出现这些错误。但通过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)...
我们没有嵌套事务,甚至没有显式地使用它们。我发现这个错误消息周围存在一个bug,但它与此无关;我们没有截断或做任何DDL工作。只是创建一个记录并保存它

我们使用Rails 3.0.10、JRuby 1.6.5、activerecord jdbcmysql适配器,与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中介绍的有关。1.2.0是否给了您同样的问题


也许我需要为支持的事务和失败的事务重新引入一些错误检查。你想在网站上发布一个bug吗?谢谢。

这听起来很愚蠢,但我在磁盘空间用完时遇到了这个错误。test.log显示
SAVEPOINT active\u record\u 1
插入到…
=>
SQLite3::FullException:数据库或磁盘已满
回滚到SAVEPOINT active\u record\u 1
=>
SQLite3::SQLException:没有这样的保存点
。(原因是在/tmp中积累了过时的硒数据。)请记录:-谢谢!不幸的是,尽管花费了令人费解的长时间,但即使使用1.2.0ActiveRecordJDBC适配器,我也复制了这一点。我会更新错误。我对最终得到这个结果并不感到惊讶——我不清楚异常处理中的更改是如何导致保存点被创建的。