Bug #115952 | discrepancy in checksum b/w source/target table after migration | ||
---|---|---|---|
Submitted: | 28 Aug 2024 13:32 | Modified: | 28 Feb 12:08 |
Reporter: | Manish Dudi | Email Updates: | |
Status: | No Feedback | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S3 (Non-critical) |
Version: | 8.0 | OS: | Linux |
Assigned to: | MySQL Verification Team | CPU Architecture: | Any |
[28 Aug 2024 13:32]
Manish Dudi
[28 Aug 2024 13:36]
Manish Dudi
.
[25 Oct 2024 17:05]
Aled Parry
We had this problem when introducing verifiable backups - the checksums were failing on some of our tables between the source and destination database servers. It turns out the issue was the FLOAT data type. As per the MySQL docs (https://dev.mysql.com/doc/refman/8.4/en/problems-with-float.html) "...if you attempt to create a replica by dumping table contents with mysqldump on the source and reloading the dump file into the replica, tables containing floating-point columns might differ between the two hosts" While visually the float data looked identical, the internal representation of the data was different enough that the checksums were different. I suspect the same issue applies here as there are multiple float-type fields in your table structure. We resolved it by migrating the columns over to DECIMAL which for our use case was better anyway, but I don't think there is a fix for those who require FLOAT fields.
[25 Oct 2024 18:52]
Jean-François Gagné
> While visually the float data looked identical, the internal representation of the data was different enough that the checksums were different. Interesting. I am curious if this impacts replication, to the point of not being able to replicate an update or delete to a row with different FLOAT representation.
[25 Oct 2024 18:57]
Jean-François Gagné
> the dump of table data is attached I guess it is attached as a private comment. If Aled hypothesis is true, it should be relatively easy to identify one row causing the problem by "binary searching" in the table. Once you have such row, it would be interesting to test if an update to it in FULL RBR (or delete) breaks replication.
[25 Oct 2024 21:24]
Aled Parry
> Interesting. I am curious if this impacts replication, to the point of not being able to replicate an update or delete to a row with different FLOAT representation. While I have no information on this specifically, what I can say is that whenever restoring the data, the checksum would always be the same (whether it was back to the source server or to a different target server) - it would only ever differ from the original source database. It's possible (and this is purely conjecture) that the original data was inserted on a previous MySQL version and over time the way FLOATs are represented have changed but existing data doesn't get changed - as such I would expect a replica to the same MySQL version/architecture would not experience these issues.
[28 Jan 12:08]
MySQL Verification Team
Hello Manish Dudi, Thank you for the report and feedback. My sincere apologies for the delay in getting back to you on this. I tried to reproduce but observed that provided source dump has missing tables( logical dumps have events table but create schema has only t1 table create details). Request you to provide dump taken using 'mysqldump' instead of mydumper(you may want to mark it as private after uploading). Thank you. regards, Umesh
[1 Mar 1:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".