Description:
Hi,
this is a follow-up on Bug#121050: Confusing Last_IO_Error "fatal error 1236" since 8.0 (also affecting 8.4, 9.7 and 26.7) and more.
In Bug#121055 (The documentation of gtid_purged (and more) is incomplete since 8.0.17), we saw that since MySQL 8.0.17, "GTIDs are now persistent within Innodb and guaranteed to be consistent with committed transaction". The error message below from "fatal error 1236" should have been updated with this, but it has not. See How to repeat from Bug#121050 for details. I would expect this to be updated, especially that it is not possible anymore to have transactions committed on the source but not included in GTID_EXECU[TED] (unless we consider non-transactional storage engines, and those using them know that there lies dragons). See Suggested fix from Bug#121050 for an improved message.
> Replicate any transactions that source has rolled back from replica to source, and/or commit empty transactions on source to account for transactions that have been committed on source but are not included in GTID_EXECU[TED]'
I am setting this as S2 / Serious because a wrong recommendation in an error message is not a minor thing.
And as I write in Bug#12105, I realize that what I suggested is in the realm of incompatible change. Even if this affects 8.0, 8.4 and 9.7, some might claim it can only be fixed in the next IR release (following 26.7.0: 26.10.0 ?). However, because the current message is wrong, it could be considered acceptable (and maybe even mandatory) to fix this in all releases.
Many thanks for looking into this,
Jean-François Gagné
How to repeat:
See How to repeat from Bug#121050.
Suggested fix:
See Suggested fix from Bug#121050.
And at least, remove the part about "transactions that have been committed on source but are not included in GTID_EXECU[TED]".