NBO generates corrupted binlogs

Description

Steps to reproduce:

It will generate corrupted binary log:

DDL is wrapped in BEGIN and COMMIT! and XID is 18446744073709551615, which is 2^64-1. Moreover 

That causes a lot of problems. The instance won't be able to prepare a data recovery, and because of that any SST will fail with:

Also, it generates wrong gtid sequence (local uuid, instead of cluster one).

For instance

generates:

Environment

None

AFFECTED CS IDs

CS0036002

Activity

Przemyslaw Malkowski May 19, 2023 at 3:36 PM

5. Unable to rotate the binary log with such an NBO event:

 

6. The node with the NBO event in its last binary log, fails to provide working SST donorship. The joiner tries to start after taking the SST, but fails with the corrupted binlog:

 

7. IST transfers fail too, with bogus GTID error:

 

Venkatesh Prasad May 18, 2023 at 8:04 AM
Edited

There are at least four issues found in this bug.

  1. DDL is wrapped with BEGIN and COMMIT in the binary log.

  2. DDL having invalid XID

  3. DDL binlogging uses node's uuid instead of cluster_uuid

  4. Failure during binlog recovery

 

 

 

Done

Details

Assignee

Reporter

Needs QA

Yes

Affects versions

Priority

Smart Checklist

Created May 17, 2023 at 8:01 PM
Updated March 6, 2024 at 8:41 PM
Resolved June 13, 2023 at 3:55 PM