activerecord-tidb-adapter
activerecord-tidb-adapter copied to clipboard
Use official `pingcap/tidb` Docker images for CI
This pull request uses the official pingcap/tidb Docker images for CI
- Run CI against the latest patch versions of each TiDB releases
- Add CI against TiDB v5.3.1, which was removed at https://github.com/pingcap/activerecord-tidb-adapter/pull/36
- Add CI against TiDB v5.4.0
- Order jobs based on TiDB versions from oldest to newest
Here are current results:
-
tidb506 7762 runs, 24914 assertions, 7 failures, 3 errors, 135 skips
-
tidb514 7764 runs, 24912 assertions, 6 failures, 4 errors, 135 skips
-
tidb523 7764 runs, 24920 assertions, 7 failures, 3 errors, 135 skips
-
tidb531 7764 runs, 24887 assertions, 6 failures, 6 errors, 135 skips
-
tidb540
Error: Process completed with exit code 1.
If using the official image, we need to find a way to configure config.toml
new_collations_enabled_on_first_bootstrap = true
[experimental]
allow-expression-index = true
Thanks for the useful info.
According to https://github.com/pingcap/docs/pull/7876 new_collations_enabled_on_first_bootstrap default value is true since TiDB 6.0.0. Therefore added tidb600 job to this pull request to see how it goes.
For allow-expression-index = true, I am thinking about adding skip unless supports_expression_index? condition to failing tests but not sure.
Here are the latest status.
tidb506 7762 runs, 24911 assertions, 6 failures, 3 errors, 135 skips
tidb514 7764 runs, 24912 assertions, 6 failures, 3 errors, 135 skips
tidb523 7764 runs, 24908 assertions, 6 failures, 3 errors, 135 skips
tidb531 7764 runs, 24913 assertions, 8 failures, 6 errors, 135 skips
tidb540 7764 runs, 24880 assertions, 7 failures, 7 errors, 135 skips
tidb600 7764 runs, 24936 assertions, 2 failures, 7 errors, 135 skips
tidb610 7764 runs, 24936 assertions, 2 failures, 7 errors, 135 skips
Here are the latest status after updating TiDB version to v5.2.4 and v5.4.1.
tidb506 7762 runs, 24914 assertions, 6 failures, 2 errors, 135 skips
tidb514 7764 runs, 24917 assertions, 6 failures, 4 errors, 135 skips
tidb524 7764 runs, 24908 assertions, 6 failures, 3 errors, 135 skips
tidb531 7764 runs, 24894 assertions, 6 failures, 8 errors, 135 skips
tidb541 7764 runs, 24893 assertions, 7 failures, 7 errors, 135 skips
tidb600 7764 runs, 24924 assertions, 3 failures, 6 errors, 135 skips
tidb610 7764 runs, 24929 assertions, 2 failures, 6 errors, 135 skips
Updated Rails version to PingCAP latest 7-0-stable. Refer to https://github.com/pingcap/rails/compare/8e88c0ecd838d642c542e8246a0b7c6e9df9c806...45f11ab0a2d19e82a4eff849970f7b36bf678b90 for the detail.
After setting 'set @@global.tidb_enable_change_multi_schema = on', tidb610 shows "7764 runs, 24918 assertions, 2 failures, 3 errors, 135 skips"
Failure:
ActiveRecord::Mysql2TransactionTest#test_raises_LockWaitTimeout_when_lock_wait_timeout_exceeded [/home/runner/work/activerecord-tidb-adapter/activerecord-tidb-adapter/vendor/bundle/ruby/2.7.0/bundler/gems/rails-45f11ab0a2d1/activerecord/test/cases/adapters/mysql2/transaction_test.rb:66]:
ActiveRecord::LockWaitTimeout expected but nothing was raised.
Failure:
ActiveRecord::Mysql2TransactionTest#test_raises_Deadlocked_when_a_deadlock_is_encountered [/home/runner/work/activerecord-tidb-adapter/activerecord-tidb-adapter/vendor/bundle/ruby/2.7.0/bundler/gems/rails-45f11ab0a2d1/activerecord/test/cases/adapters/mysql2/transaction_test.rb:39]:
[ActiveRecord::Deadlocked] exception expected, not
Class: <ActiveRecord::StatementInvalid>
Message: <"Mysql2::Error: Write conflict, txnStartTS=434080828844670976, conflictStartTS=434080828845457408, conflictCommitTS=434080828845981696, key={tableID=1356, handle=2} primary=[]byte(nil) [try again later]">
Error:
ConcurrentTransactionTest#test_transaction_per_thread:
ActiveRecord::StatementInvalid: Mysql2::Error: Write conflict, txnStartTS=434080833096646656, conflictStartTS=434080833096384512, conflictCommitTS=434080833097695232, key={tableID=1699, handle=1} primary=[]byte(nil) [try again later]
Error:
ConcurrentTransactionTest#test_transaction_isolation__read_committed:
ActiveRecord::StatementInvalid: Mysql2::Error: Write conflict, txnStartTS=434080833407025152, conflictStartTS=434080833407287296, conflictCommitTS=434080833409646592, key={tableID=1481, handle=1} primary=[]byte(nil) [try again later]
Error:
ConcurrentTransactionTest#test_nested_explicit_transactions:
ActiveRecord::ConnectionNotEstablished: MySQL client is not connected
Restored to use hooopo/tidb-playground for the existing versions, TiDB v5.2 or lower. Let's use the official docker images for TiDB v5.3 or higher.