INSERT... SELECT... ON DUPLICATE KEY UPDATE is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are updated. This order cannot be predicted and may differ on master and the slave
This page shows information specific to MariaDB SkySQL. Information for non-SkySQL use can be found on the ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE page in the MariaDB Enterprise Documentation.