On 24/01/17 04:30, SachinSetiya wrote:
> revision-id: ef590faa0e21d25a2dc5153f938135612b17ecbc (mariadb-10.1.20-31-gef590fa)
> thd_proc_info(thd, message);
> + DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ Shouldn't these be DEBUG_SYNC_C("do_exec_row");
> + my_sleep(500000);
> + };);
and then use debug_sync to generate test synchronisation.
> int error= write_row(rgi, slave_exec_mode == SLAVE_EXEC_MODE_IDEMPOTENT);
> thd_proc_info(thd, tmp);
> + thd->db= tmp_db;
>
> if (error && !thd->is_error())
> {
> @@ -12371,32 +12380,45 @@ int Delete_rows_log_event::do_exec_row(rpl_group_info *rgi) Why assign a pointer? Isn't defining message as a char[128] sufficient?
> {
> int error;
> const char *tmp= thd->get_proc_info();
> - const char *message= "Delete_rows_log_event::find_row()";
> + char *tmp_db= thd->db;
> + char *message, msg[128];
> + my_snprintf(msg, sizeof(msg),"Delete_rows_log_event::find_row() on table %s",
> + m_table->s->table_name.str);
> + thd->db= m_table->s->db.str;
> + message= msg;
Thanks for writing this feature.