Details
Description
It appears that some error conditions don't store error information in the Diagnostics_area.
For example when table_def::compatible_with() check fails error message is stored in Relay_log_info instead.
This results in optimistically identical votes and zero error buffer size breaks wsrep-lib logic as it relies on error buffer size to decide whether voting took place.
To account for this, first try to obtain error info from Diagnostics_area, then fallback to Relay_log_info. If that fails use some random data to distinguish this condition from success.