Skip to content

[DNM] add debug log#12473

Open
lidezhu wants to merge 3 commits intorelease-8.5from
ldz/debug-codec1223
Open

[DNM] add debug log#12473
lidezhu wants to merge 3 commits intorelease-8.5from
ldz/debug-codec1223

Conversation

@lidezhu
Copy link
Collaborator

@lidezhu lidezhu commented Dec 23, 2025

What problem does this PR solve?

Issue Number: close #xxx

What is changed and how it works?

Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)
  • No code

Questions

Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?

Release note

Please refer to [Release Notes Language Style Guide](https://pingcap.github.io/tidb-dev-guide/contribute-to-tidb/release-notes-style-guide.html) to write a quality release note.

If you don't think this PR needs a release note then fill it with `None`.

@ti-chi-bot
Copy link
Contributor

ti-chi-bot bot commented Dec 23, 2025

This cherry pick PR is for a release branch and has not yet been approved by triage owners.
Adding the do-not-merge/cherry-pick-not-approved label.

To merge this cherry pick:

  1. It must be LGTMed and approved by the reviewers firstly.
  2. For pull requests to TiDB-x branches, it must have no failed tests.
  3. AFTER it has lgtm and approved labels, please wait for the cherry-pick merging approval from triage owners.
Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@ti-chi-bot ti-chi-bot bot added release-note Denotes a PR that will be considered when it comes time to generate release notes. do-not-merge/cherry-pick-not-approved labels Dec 23, 2025
@ti-chi-bot
Copy link
Contributor

ti-chi-bot bot commented Dec 23, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign tammyxia for approval. For more information see the Code Review Process.
Please ensure that each of them provides their approval before proceeding.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@gemini-code-assist
Copy link

Summary of Changes

Hello @lidezhu, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request primarily focuses on improving the diagnostic capabilities within the sink/codec package, particularly for Debezium encoding. It refines logging verbosity by changing a WARN level message to DEBUG for routine name sanitization, and more importantly, it introduces highly detailed ERROR logging for Debezium field value writing failures. These changes aim to provide comprehensive context for troubleshooting data synchronization and type handling issues, making it easier to pinpoint the root cause of encoding problems. The [DNM] prefix suggests this might be a temporary or draft change for debugging purposes.

Highlights

  • Logging Level Adjustment: The logging level for name sanitization warnings in pkg/sink/codec/common/helper.go has been downgraded from Warn to Debug to reduce noise in logs for non-critical information.
  • Enhanced Error Logging: Significantly expanded the error logging in pkg/sink/codec/debezium/codec.go when writeDebeziumFieldValue encounters an issue. The error message now includes extensive contextual details such as table name, table ID, column name, column ID, MySQL type, column value, field name, and various column flags, which will greatly assist in debugging data encoding failures.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@ti-chi-bot ti-chi-bot bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Dec 23, 2025
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request enhances debugging capabilities by adding detailed logging information within an error handling block in the Debezium codec and adjusting a log level from Warn to Debug for name sanitization. These changes are helpful for troubleshooting. I have one suggestion to make the new error logs more concise by removing some redundant and verbose fields.

Comment on lines +102 to +105
zap.Bool("columnIsBinary", colFlag.IsBinary()),
zap.Any("columnInfo", colx.GetColumnInfo()),
zap.Any("columnFieldType", colFt),
zap.Any("rowColumnInfo", colInfos[i]),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

While the additional context is very helpful for debugging, logging the full columnInfo, columnFieldType, and rowColumnInfo objects introduces significant verbosity and redundancy.

  • rowColumnInfo is redundant as its fields (ID and Ft) are already logged as columnID and columnFieldType.
  • columnInfo is a large struct that also contains FieldType, which is logged as columnFieldType.

To keep the log entries more manageable and focused, I suggest removing these zap.Any fields for the complex structs.

					zap.Bool("columnIsBinary", colFlag.IsBinary())

@codecov
Copy link

codecov bot commented Dec 23, 2025

Codecov Report

❌ Patch coverage is 20.65217% with 73 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (release-8.5@4d578e9). Learn more about missing BASE report.

❌ Your patch check has failed because the patch coverage (20.6521%) is below the target coverage (60.0000%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
Components Coverage Δ
cdc 57.7308% <0.0000%> (?)
dm 48.6485% <0.0000%> (?)
engine 50.6434% <0.0000%> (?)
Flag Coverage Δ
unit 53.3648% <20.6521%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

@@               Coverage Diff                @@
##             release-8.5     #12473   +/-   ##
================================================
  Coverage               ?   53.3648%           
================================================
  Files                  ?       1004           
  Lines                  ?     137049           
  Branches               ?          0           
================================================
  Hits                   ?      73136           
  Misses                 ?      58463           
  Partials               ?       5450           
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ti-chi-bot ti-chi-bot bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Dec 23, 2025
@ti-chi-bot
Copy link
Contributor

ti-chi-bot bot commented Mar 17, 2026

@lidezhu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-syncdiff-integration-test 597b585 link true /test pull-syncdiff-integration-test
pull-cdc-integration-mysql-test 597b585 link true /test pull-cdc-integration-mysql-test
pull-cdc-integration-kafka-test 597b585 link true /test pull-cdc-integration-kafka-test
pull-cdc-integration-pulsar-test 597b585 link true /test pull-cdc-integration-pulsar-test
pull-cdc-integration-storage-test 597b585 link true /test pull-cdc-integration-storage-test

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/cherry-pick-not-approved release-note Denotes a PR that will be considered when it comes time to generate release notes. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant