OpenTenBase / OpenTenBase/TXSQL
BUG#34930969: Previous_gtids miss gtid when binlog_order_commits off
Nessuno ha ancora preso questa issue.
- Lingua principale
- C++
- Stelle
- 337
- Fork
- 234
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
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
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia individuando MYSQL_BIN_LOG::finish_commit e analizza l’ordine di dec_prep_xids e gtid_state->update_on_commit. Esamina il punto DEBUG_SYNC after_dec_prep_xids e il caso di test MTR rpl_previous_gtids. Il lavoro è completato quando il test verifica che Previous_gtids includa tutti i GTID sottoposti a commit quando binlog_order_commits è disattivato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp, mysql
- Ambito
- databases
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100