← Back to team overview

maria-developers team mailing list archive

Re: [Commits] ef590fa: MDEV-7409 On RBR, extend the PROCESSLIST info to include at least the name of the recently used table

 

Hi Kristian, Daniel,

On Thu, Jan 26, 2017 at 2:24 PM, Kristian Nielsen
<knielsen@xxxxxxxxxxxxxxx> wrote:
> Sachin Setiya <sachin.setiya@xxxxxxxxxxx> writes:
>
>> On Tue, Jan 24, 2017 at 2:32 AM, Daniel Black <daniel.black@xxxxxxxxxxx>
>> wrote:
>
>>> 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",{
>>> > +                  my_sleep(500000);
>>> > +                  };);
>>>
>>> Shouldn't these be DEBUG_SYNC_C("do_exec_row");
>>>
>>> and then use debug_sync to generate test synchronisation.
>>>
>>> I tried using DEBUG_SYNC and DEBUG_SYNC_C
>
>> But mtr test is not waiting, this is because ::do_exec_row is called by SQL
>> thread is there a way to
>> stop SQL thread and add sync points ?
>
> You use DBUG_EXECUTE_IF() to trigger code inside the SQL thread that then
> does the appropriate debug_sync command. For an example, see the use of
> rpl_parallel_scheduled_gtid_0_x_100 in
> mysql-test/extra/rpl_tests/rpl_parallel.inc and sql/rpl_parallel.cc.
>
thanks, used debug_sync_set_action, But one more problem I used
debug_sync_set_action, but this changes thd->info to
debug_sync point now. So Instead of printing thd->info I am just
printing from echo and using condition in dbug_execute_if

+  DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{
+                  if(!my_strcasecmp(system_charset_info, "test", thd->db) &&
+                        !my_strcasecmp(system_charset_info,"t1", table_name))
+                    debug_sync_set_action(thd,
+                         STRING_WITH_LEN("now SIGNAL thd_info_set
WAIT_FOR done"));
+                  };);


+connection slave;
+SET DEBUG_SYNC='now WAIT_FOR thd_info_set';
+--echo #Write_row:- Writing row on table t1
+SET DEBUG_SYNC = 'now SIGNAL done';


> Do not ever use sleeps as a way to synchronise in test cases (or anywhere).
>
>> +  my_snprintf(msg, sizeof(msg),"Write_rows_log_event::write_row() on table %s",
>> +                   m_table->s->table_name.str);
>
> Since you are anyway changing the message, I would put something more
> appropriate here. Putting internal server source code names like
> Write_rows_log_event::write_row() in SHOW PROCESSLIST does not seem
> appropriate.
>
Done.

>  - Kristian.

Patch link:- http://lists.askmonty.org/pipermail/commits/2017-January/010583.html
Buildbot link:-
https://buildbot.askmonty.org/buildbot/grid?category=main&branch=bb-10.1-sachin
Regards
sachin


References