From 3c01cbafd9181c15fd6013e2effbdf1cde5cfb72 Mon Sep 17 00:00:00 2001 From: Paul Guo Date: Tue, 9 Jun 2020 07:57:51 +0800 Subject: [PATCH] Fix flaky test recoverseg_from_file (#10259) After gprecoverseg, need to wait until the cluster is synchronized before running subsequent tests. Reviewed-by: Hubert Zhang Reviewed-by: Reviewed-by: Ashwin Agrawal Cherry-picked from d490798b4bbdeb1f5079f9f6acb973e735cab93c --- .../segwalrep/recoverseg_from_file.out | 8 +++++++ .../sql/segwalrep/recoverseg_from_file.sql | 24 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/test/isolation2/expected/segwalrep/recoverseg_from_file.out b/src/test/isolation2/expected/segwalrep/recoverseg_from_file.out index 240f2f4979..26b1eadc06 100644 --- a/src/test/isolation2/expected/segwalrep/recoverseg_from_file.out +++ b/src/test/isolation2/expected/segwalrep/recoverseg_from_file.out @@ -115,12 +115,20 @@ SET -- end_ignore (exited with code 0) +-- loop while segments come in sync +do $$ begin /* in func */ for i in 1..120 loop /* in func */ if (select count(*) = 0 from gp_segment_configuration where content != -1 and mode != 's') then /* in func */ return; /* in func */ end if; /* in func */ perform gp_request_fts_probe_scan(); /* in func */ end loop; /* in func */ end; /* in func */ $$; +DO + -- rebalance the cluster !\retcode gprecoverseg -ar; -- start_ignore -- end_ignore (exited with code 0) +-- loop while segments come in sync +do $$ begin /* in func */ for i in 1..120 loop /* in func */ if (select count(*) = 0 from gp_segment_configuration where content != -1 and mode != 's') then /* in func */ return; /* in func */ end if; /* in func */ perform gp_request_fts_probe_scan(); /* in func */ end loop; /* in func */ end; /* in func */ $$; +DO + -- recheck gp_segment_configuration after rebalance SELECT dbid, role, preferred_role, content, mode, status FROM gp_segment_configuration order by dbid; dbid | role | preferred_role | content | mode | status diff --git a/src/test/isolation2/sql/segwalrep/recoverseg_from_file.sql b/src/test/isolation2/sql/segwalrep/recoverseg_from_file.sql index 68d0ca73b5..fecd478c2d 100644 --- a/src/test/isolation2/sql/segwalrep/recoverseg_from_file.sql +++ b/src/test/isolation2/sql/segwalrep/recoverseg_from_file.sql @@ -76,9 +76,33 @@ set allow_system_table_mods to false; -- at here !\retcode gprecoverseg -a; +-- loop while segments come in sync +do $$ + begin /* in func */ + for i in 1..120 loop /* in func */ + if (select count(*) = 0 from gp_segment_configuration where content != -1 and mode != 's') then /* in func */ + return; /* in func */ + end if; /* in func */ + perform gp_request_fts_probe_scan(); /* in func */ + end loop; /* in func */ + end; /* in func */ +$$; + -- rebalance the cluster !\retcode gprecoverseg -ar; +-- loop while segments come in sync +do $$ + begin /* in func */ + for i in 1..120 loop /* in func */ + if (select count(*) = 0 from gp_segment_configuration where content != -1 and mode != 's') then /* in func */ + return; /* in func */ + end if; /* in func */ + perform gp_request_fts_probe_scan(); /* in func */ + end loop; /* in func */ + end; /* in func */ +$$; + -- recheck gp_segment_configuration after rebalance SELECT dbid, role, preferred_role, content, mode, status FROM gp_segment_configuration order by dbid; -- GitLab