Details
-
Bug
-
Status: Open (View Workflow)
-
Critical
-
Resolution: Unresolved
-
None
-
Can result in unexpected behaviour
-
Q2/2026 Server Maintenance
Description
If a 10.6-11.4 server is replicating from a master which supports the full range of 32-bit unsigned timestamps (added in MDEV-32188 to 11.5), the replica will take in the value as-is. This breaks system tables on the replica, where they won't show any data coming from the 11.5+ master.
The replica should instead convert 32-bit unsigned max timestamps to their signed max equivalent. If replica timestamp is in the range between these values (i.e. larger than 32-bit signed maximum and less than 32-bit unsigned maximum), the value cannot be recovered and we should error. Note slave_type_conversions=ALL_LOSSY should not cover this case.
The fix should effectively be
if (unlikely(ts > 0x7fffffff))
|
if (ts == 0xffffffff)
|
ts= 0x7fffffff
|
else
|
goto err;
|
The fix should only go into 10.6, 10.11, and 11.4; it should be null-merged into 11.8 as the value is supported there.
Attachments
Issue Links
- is caused by
-
MDEV-32188 make TIMESTAMP use whole 32-bit unsigned range
-
- Closed
-