gh-ost aborts on trying to UPDATE, errors on invalid character

v1.0.21

gh-ost with --test-on-replica failed like this:

FATAL Error 1366: Incorrect string value: '\xE1...' for column 'column_name' at row 1; query=

column_name is a latin1 VARCHAR and the value coming in the UPDATE statement contained this problematic character:

รก

So this may be related to the safe SQL mode settings.

The binlogs showed this:

  • first, a row with the relevant id is INSERTed into the ghost table. At the moment, the data contains no \xE1 character.
  • eventually, there is incoming UPDATE for the original table that introduces the \xE1 character. gh-ost refuses to handle it and aborts