← Back to team overview

maria-developers team mailing list archive

Re: a Query_log_event charset bug in parallel replication

 

hi, kristian

> Right, I see. Probably the cached_charset just needs to be moved into the
> rpl_group_info struct.

> I have filed a bug for this that I will fix:

>    https://mariadb.atlassian.net/browse/MDEV-6156

I'm afraid there is still some cases would lead mistake if move cached_charset into rpl_group_info struct.

For a worker thread can keep a lot rpl_group_info structs in its rgi_free_list, and those rgis can be reused many times.
in this case:
a worker thread executes there transactions, which is trans1,trans2 and trans3

trans1's charset is utf8  and it use rgi1
trans2's charset is latin1  and it use rgi2
trans3's charset is utf8  and it use rgi1

so when worker thread start to execute trans3, rgi1->cached_charset == utf8. but thd->variables.character_set_* are latin1. and 
them wouldn't be changed to utf8 for rgi->cached_charset_compare return 0.

Thanks

Follow ups

References