Michael Schoen
2006-Jul-06 04:41 UTC
Rails AR/Oracle Unit Test: [4462] failed (getting worse)
"bitsweat" has kicked AR/Oracle while it was down... http://dev.rubyonrails.org/changeset/4462 ------------------------------------------------------------------------ r4462 | bitsweat | 2006-06-19 18:58:36 -0700 (Mon, 19 Jun 2006) | 3 lines r4664@asus: jeremy | 2006-06-19 18:55:36 -0700 Use the #lock method to obtain a row lock on a single record. Simply reloads the record with :lock => true. ------------------------------------------------------------------------ U activerecord/test/locking_test.rb D activerecord/lib/active_record/locking.rb A activerecord/lib/active_record/locking A activerecord/lib/active_record/locking/optimistic.rb A activerecord/lib/active_record/locking/pessimistic.rb U activerecord/lib/active_record/base.rb U activerecord/lib/active_record.rb U activerecord/CHANGELOG U . Updated to revision 4462. 1) Failure: test_to_xml(BasicsTest) [./test/base_test.rb:1239]: <false> is not true. 2) Error: test_add_column_not_null_with_default(MigrationTest): ActiveRecord::StatementInvalid: OCIError: ORA-01400: cannot insert NULL into ("ARUNIT"."TESTINGS"."ID"): insert into testings (foo) values (''hello'') ./test/../lib/active_record/connection_adapters/abstract_adapter.rb:120:in `log'' ./test/../lib/active_record/connection_adapters/oracle_adapter.rb:277:in `execute'' ./test/migration_test.rb:176:in `test_add_column_not_null_with_default'' 3) Failure: test_sane_find_with_lock(PessimisticLockingTest) [./test/locking_test.rb:76]: Exception raised: Class: <ActiveRecord::StatementInvalid> Message: <"OCIError: ORA-02014: cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc.: select * from (select raw_sql_.*, rownum raw_rnum_ from (SELECT * FROM people WHERE (people.id = 1) ) raw_sql_ where rownum <= 1) where raw_rnum_ > 0 FOR UPDATE"> ---Backtrace--- ./test/../lib/active_record/connection_adapters/abstract_adapter.rb:120:in `log'' ./test/../lib/active_record/connection_adapters/oracle_adapter.rb:277:in `execute'' ./test/../lib/active_record/connection_adapters/oracle_adapter.rb:477:in `select'' ./test/../lib/active_record/connection_adapters/oracle_adapter.rb:268:in `select_all'' ./test/../lib/active_record/base.rb:416:in `find_by_sql'' ./test/../lib/active_record/base.rb:950:in `find_every'' ./test/../lib/active_record/base.rb:944:in `find_initial'' ./test/../lib/active_record/base.rb:978:in `find_one'' ./test/../lib/active_record/base.rb:967:in `find_from_ids'' ./test/../lib/active_record/base.rb:408:in `find'' ./test/locking_test.rb:79:in `test_sane_find_with_lock'' ./test/../lib/active_record/base.rb:899:in `with_scope'' ./test/locking_test.rb:78:in `test_sane_find_with_lock'' ./test/../lib/active_record/connection_adapters/abstract/database_statements.rb:51:in `transaction'' ./test/../lib/active_record/transactions.rb:86:in `transaction'' ./test/locking_test.rb:77:in `test_sane_find_with_lock'' ./test/locking_test.rb:76:in `test_sane_find_with_lock'' --------------- 4) Failure: test_sane_lock_method(PessimisticLockingTest) [./test/locking_test.rb:87]: Exception raised: Class: <ActiveRecord::StatementInvalid> Message: <"OCIError: ORA-02014: cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc.: select * from (select raw_sql_.*, rownum raw_rnum_ from (SELECT * FROM people WHERE (people.id = 1) ) raw_sql_ where rownum <= 1) where raw_rnum_ > 0 FOR UPDATE"> ---Backtrace--- ./test/../lib/active_record/connection_adapters/abstract_adapter.rb:120:in `log'' ./test/../lib/active_record/connection_adapters/oracle_adapter.rb:277:in `execute'' ./test/../lib/active_record/connection_adapters/oracle_adapter.rb:477:in `select'' ./test/../lib/active_record/connection_adapters/oracle_adapter.rb:268:in `select_all'' ./test/../lib/active_record/base.rb:416:in `find_by_sql'' ./test/../lib/active_record/base.rb:950:in `find_every'' ./test/../lib/active_record/base.rb:944:in `find_initial'' ./test/../lib/active_record/base.rb:978:in `find_one'' ./test/../lib/active_record/base.rb:967:in `find_from_ids'' ./test/../lib/active_record/base.rb:408:in `find'' ./test/../lib/active_record/base.rb:1550:in `reload'' ./test/../lib/active_record/locking/pessimistic.rb:72:in `lock!'' ./test/locking_test.rb:91:in `test_sane_lock_method'' ./test/../lib/active_record/connection_adapters/abstract/database_statements.rb:51:in `transaction'' ./test/../lib/active_record/transactions.rb:86:in `transaction'' ./test/locking_test.rb:88:in `test_sane_lock_method'' ./test/locking_test.rb:87:in `test_sane_lock_method'' --------------- 899 tests, 3149 assertions, 3 failures, 1 errors rake aborted! Command failed with status (1): [/usr/pkg/ruby184/bin/ruby -Ilib:test:test/...] (See full trace by running task with --trace)