BUG#34930969: Previous_gtids miss gtid when binlog_order_commits off
まだ誰も着手していません。
評価
調査の方向性
まず MYSQL_BIN_LOG::finish_commit を見つけ、dec_prep_xids と gtid_state->update_on_commit の順序を確認します。after_dec_prep_xids の DEBUG_SYNC ポイントと、MTR テストケース rpl_previous_gtids を確認します。binlog_order_commits がオフの場合に Previous_gtids にコミット済みのすべての GTID が含まれることをテストで検証できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Problem
When binlog_order_commits is turned off, binlog rotate will wait for m_prep_xids to decrease to zero. However, m_prep_xids was decreased before updating the thread GTID to gtid_executed in MYSQL_BIN_LOG::finish_commit, causing GTIDs to be missed in the next binlog file Previous_gtids event.
Fix
The core fix moves dec_prep_xids to be called after gtid_state->update_on_commit in MYSQL_BIN_LOG::finish_commit. This ensures that when binlog rotate waits for m_prep_xids to reach zero, all GTIDs have already been registered in gtid_executed.
Additionally:
- Added
DEBUG_SYNCpointafter_dec_prep_xidsto enable deterministic testing - Added MTR test case
rpl_previous_gtidsto verify the fix
Commit
https://github.com/xyw0537/TXSQL/commit/ae7de225c2a
Branch: bugfix/previous_gtids_miss_gtid_binlog_order_commits_off
Upstream Reference
https://github.com/mysql/mysql-server/commit/a3faa6f8799e6c7c610245d2899386131731fb41
- 主要言語
- C++
- スター
- 338
- フォーク
- 235
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
OpenTenBase/TXSQL のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
OpenTenBase/TXSQL#95 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
OpenTenBase/TXSQL#57 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 32/100
OpenTenBase/TXSQL#113 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
OpenTenBase/TXSQL#112 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
OpenTenBase/TXSQL#111 ·
OpenTenBase/TXSQL の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
flutter-webrtc/flutter-webrtc#2206 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
Component: GLib
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
Mute ydb/tests/functional/dstool/test_canonical_requests.py.Test.test_group_take_snapshot in main オープンai_reviewed
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
ydb-platform/ydb#53974 · コメント 3 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
google/libultrahdr#485 ·