tiflow icon indicating copy to clipboard operation
tiflow copied to clipboard

Compatibility Issue with MySQL Integration Test `default_value` in TiCDC When Using Go 1.23.2

Open wlwilliamx opened this issue 1 year ago • 0 comments

What did you do?

While working on upgrading TiCDC from Go 1.21.7 to Go 1.23.2, I encountered an issue where the MySQL integration test case default_value fails when compiled and run with Go 1.23.2, but passes successfully with Go 1.21.7. The failure happens despite no changes in the TiCDC codebase, as I only switched the Go version between test runs.

Details:

  • TiCDC version: Current master branch
  • Go versions tested: 1.21.7 (successful) and 1.23.2 (failure)
  • Go version management tool: gvm

The default_value test case is a part of TiCDC's MySQL integration test suite. Using Go 1.21.7, the case runs without any issues, but when I switch to Go 1.23.2, the same test case consistently fails. This suggests that there may be a breaking change or subtle behavior difference introduced in Go 1.23.2 that affects how TiCDC handles this test case, particularly around MySQL compatibility or the handling of default values in DDL operations.

Steps to Reproduce:

  1. Check out the latest master branch of TiCDC.
  2. Compile TiCDC (make integration_test_build) with Go 1.23.2 and run the MySQL integration tests (make integration_test CASE=default_value), focusing on the default_value case.
  3. Compile TiCDC with Go 1.21.7 and run the same test suite.

What did you expect to see?

CleanShot 2024-10-09 at 15 52 21@2x

The default_value test case passes when using compiled and run with Go 1.23.2.

What did you see instead?

  • Go 1.21.7: The default_value test passes without any issues.
  • Go 1.23.2: The same test fails, with no code changes made to TiCDC between runs.

Given that only the Go version was changed, I suspect that there may be an incompatibility between TiCDC and Go 1.23.2, possibly related to changes in how default values are handled in MySQL or Go's interaction with SQL types.

Versions of the cluster

TiCDC version (execute cdc version):

master

wlwilliamx avatar Oct 09 '24 07:10 wlwilliamx