activerecord-tidb-adapter icon indicating copy to clipboard operation
activerecord-tidb-adapter copied to clipboard

Use official `pingcap/tidb` Docker images for CI

Open yahonda opened this issue 3 years ago • 10 comments

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

yahonda avatar Mar 28 '22 08:03 yahonda

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.

yahonda avatar Mar 31 '22 07:03 yahonda

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

hooopo avatar Mar 31 '22 09:03 hooopo

Thanks for the useful info.

yahonda avatar Apr 01 '22 00:04 yahonda

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.

yahonda avatar Apr 06 '22 08:04 yahonda

For allow-expression-index = true, I am thinking about adding skip unless supports_expression_index? condition to failing tests but not sure.

yahonda avatar Apr 06 '22 08:04 yahonda

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

yahonda avatar Jun 22 '22 06:06 yahonda

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

yahonda avatar Jun 22 '22 07:06 yahonda

Updated Rails version to PingCAP latest 7-0-stable. Refer to https://github.com/pingcap/rails/compare/8e88c0ecd838d642c542e8246a0b7c6e9df9c806...45f11ab0a2d19e82a4eff849970f7b36bf678b90 for the detail.

yahonda avatar Jun 22 '22 07:06 yahonda

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

yahonda avatar Jun 22 '22 08:06 yahonda

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.

yahonda avatar Jun 23 '22 01:06 yahonda