"nanyi607rao" <[email protected]> writes: > First is in rpl_parallel_thread::get_rgi() > adjusted like this > ... > else > { > if(!(rgi= new rpl_group_info(rli))) > { > my_error(ER_OUTOFMEMORY, MYF(0), (int)sizeof(*rgi)); > return NULL; > } > rgi->is_parallel_exec = true; > - if ((rgi->deferred_events_collecting= rli->mi->rpl_filter->is_on())) > _ rgi->deferred_events= new Deferred_log_events(rli); > } > + if ((rgi->deferred_events_collecting= rli->mi->rpl_filter->is_on())) > + rgi->deferred_events= new Deferred_log_events(rli); > > because rgi->deferred_events was freed in rpl_parallel_thread::free_rgi() if > it wasn't NULL
Right, I see. Maybe an alternative is to fix rpl_parallel_thread::free_rgi() to not free the deferred_events, I will need to check. Either way, agree, this needs to be fixed. > Second is in rpl_parallel_change_thread_count() > > I think it need add mysql_cond_broadcast(&pool->COND_rpl_thread_pool) after > all new threads are ok, this is for > the case that skip_slave_start=OFF,then SQL thread would start automaticlly, > it could wait forever in rpl_parallel_thread_pool::get_thread(), because SQL > thread may reach this function before another thread reach the > rpl_parallel_change_thread_count(). Ah, I see, well spotted! I will find a way to fix this. Thanks a lot for finding and reporting these! - Kristian. _______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

