From a6d3dea8e5e0c8a0df2f95d66b6c3903a4354ca0 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Wed, 31 Mar 2021 18:45:17 -0300 Subject: [PATCH] Disable force_parallel_mode in libpq_pipeline Some buildfarm animals with force_parallel_mode=regress were failing this test because the error is reported in a parallel worker quicker than the rows that succeed. Take the opportunity to move the SET of lc_messages out of the traced section, because it's not very interesting. Diagnosed-by: Tom Lane Discussion: https://postgr.es/m/3304521.1617221724@sss.pgh.pa.us --- src/test/modules/libpq_pipeline/libpq_pipeline.c | 12 ++++++++---- .../traces/disallowed_in_pipeline.trace | 3 --- .../libpq_pipeline/traces/multi_pipelines.trace | 3 --- .../libpq_pipeline/traces/pipeline_abort.trace | 3 --- .../modules/libpq_pipeline/traces/prepared.trace | 3 --- .../libpq_pipeline/traces/simple_pipeline.trace | 3 --- .../modules/libpq_pipeline/traces/singlerow.trace | 3 --- .../modules/libpq_pipeline/traces/transaction.trace | 3 --- 8 files changed, 8 insertions(+), 25 deletions(-) diff --git a/src/test/modules/libpq_pipeline/libpq_pipeline.c b/src/test/modules/libpq_pipeline/libpq_pipeline.c index 6e136877047..081a84f8248 100644 --- a/src/test/modules/libpq_pipeline/libpq_pipeline.c +++ b/src/test/modules/libpq_pipeline/libpq_pipeline.c @@ -438,6 +438,7 @@ test_pipeline_abort(PGconn *conn) if (PQresultStatus(res) != PGRES_PIPELINE_SYNC) pg_fatal("Unexpected result code %s from pipeline sync", PQresStatus(PQresultStatus(res))); + fprintf(stderr, "ok\n"); /* Test single-row mode with an error partways */ if (PQsendQuery(conn, "SELECT 1.0/g FROM generate_series(3, -1, -1) g") != 1) @@ -1308,6 +1309,13 @@ main(int argc, char **argv) exit_nicely(conn); } + res = PQexec(conn, "SET lc_messages TO \"C\""); + if (PQresultStatus(res) != PGRES_COMMAND_OK) + pg_fatal("failed to set lc_messages: %s", PQerrorMessage(conn)); + res = PQexec(conn, "SET force_parallel_mode = off"); + if (PQresultStatus(res) != PGRES_COMMAND_OK) + pg_fatal("failed to set force_parallel_mode: %s", PQerrorMessage(conn)); + /* Set the trace file, if requested */ if (tracefile != NULL) { @@ -1320,10 +1328,6 @@ main(int argc, char **argv) PQTRACE_SUPPRESS_TIMESTAMPS | PQTRACE_REGRESS_MODE); } - res = PQexec(conn, "SET lc_messages TO \"C\""); - if (PQresultStatus(res) != PGRES_COMMAND_OK) - pg_fatal("failed to set lc_messages: %s", PQerrorMessage(conn)); - if (strcmp(testname, "disallowed_in_pipeline") == 0) test_disallowed_in_pipeline(conn); else if (strcmp(testname, "multi_pipelines") == 0) diff --git a/src/test/modules/libpq_pipeline/traces/disallowed_in_pipeline.trace b/src/test/modules/libpq_pipeline/traces/disallowed_in_pipeline.trace index dd8cce4f445..dd6df03f1ed 100644 --- a/src/test/modules/libpq_pipeline/traces/disallowed_in_pipeline.trace +++ b/src/test/modules/libpq_pipeline/traces/disallowed_in_pipeline.trace @@ -1,6 +1,3 @@ -F 27 Query "SET lc_messages TO "C"" -B 8 CommandComplete "SET" -B 5 ReadyForQuery I F 13 Query "SELECT 1" B 33 RowDescription 1 "?column?" NNNN 0 NNNN 4 -1 0 B 11 DataRow 1 1 '1' diff --git a/src/test/modules/libpq_pipeline/traces/multi_pipelines.trace b/src/test/modules/libpq_pipeline/traces/multi_pipelines.trace index 66ddd9781ad..4b9ab07ca42 100644 --- a/src/test/modules/libpq_pipeline/traces/multi_pipelines.trace +++ b/src/test/modules/libpq_pipeline/traces/multi_pipelines.trace @@ -1,6 +1,3 @@ -F 27 Query "SET lc_messages TO "C"" -B 8 CommandComplete "SET" -B 5 ReadyForQuery I F 21 Parse "" "SELECT $1" 1 NNNN F 19 Bind "" "" 0 1 1 '1' 1 0 F 6 Describe P "" diff --git a/src/test/modules/libpq_pipeline/traces/pipeline_abort.trace b/src/test/modules/libpq_pipeline/traces/pipeline_abort.trace index 6aacca03bfa..b0614357856 100644 --- a/src/test/modules/libpq_pipeline/traces/pipeline_abort.trace +++ b/src/test/modules/libpq_pipeline/traces/pipeline_abort.trace @@ -1,6 +1,3 @@ -F 27 Query "SET lc_messages TO "C"" -B 8 CommandComplete "SET" -B 5 ReadyForQuery I F 42 Query "DROP TABLE IF EXISTS pq_pipeline_demo" B 123 NoticeResponse S "NOTICE" V "NOTICE" C "00000" M "table "pq_pipeline_demo" does not exist, skipping" F "SSSS" L "SSSS" R "SSSS" \x00 B 15 CommandComplete "DROP TABLE" diff --git a/src/test/modules/libpq_pipeline/traces/prepared.trace b/src/test/modules/libpq_pipeline/traces/prepared.trace index 2f8ad1bd2a9..1a7de5c3e65 100644 --- a/src/test/modules/libpq_pipeline/traces/prepared.trace +++ b/src/test/modules/libpq_pipeline/traces/prepared.trace @@ -1,6 +1,3 @@ -F 27 Query "SET lc_messages TO "C"" -B 8 CommandComplete "SET" -B 5 ReadyForQuery I F 68 Parse "select_one" "SELECT $1, '42', $1::numeric, interval '1 sec'" 1 NNNN F 16 Describe S "select_one" F 4 Sync diff --git a/src/test/modules/libpq_pipeline/traces/simple_pipeline.trace b/src/test/modules/libpq_pipeline/traces/simple_pipeline.trace index 54d812a93f4..5c94749bc1e 100644 --- a/src/test/modules/libpq_pipeline/traces/simple_pipeline.trace +++ b/src/test/modules/libpq_pipeline/traces/simple_pipeline.trace @@ -1,6 +1,3 @@ -F 27 Query "SET lc_messages TO "C"" -B 8 CommandComplete "SET" -B 5 ReadyForQuery I F 21 Parse "" "SELECT $1" 1 NNNN F 19 Bind "" "" 0 1 1 '1' 1 0 F 6 Describe P "" diff --git a/src/test/modules/libpq_pipeline/traces/singlerow.trace b/src/test/modules/libpq_pipeline/traces/singlerow.trace index 56ce5f80d50..9de99befcc1 100644 --- a/src/test/modules/libpq_pipeline/traces/singlerow.trace +++ b/src/test/modules/libpq_pipeline/traces/singlerow.trace @@ -1,6 +1,3 @@ -F 27 Query "SET lc_messages TO "C"" -B 8 CommandComplete "SET" -B 5 ReadyForQuery I F 38 Parse "" "SELECT generate_series(42, $1)" 0 F 20 Bind "" "" 0 1 2 '44' 1 0 F 6 Describe P "" diff --git a/src/test/modules/libpq_pipeline/traces/transaction.trace b/src/test/modules/libpq_pipeline/traces/transaction.trace index 24eb54e4f2a..0267a534fa1 100644 --- a/src/test/modules/libpq_pipeline/traces/transaction.trace +++ b/src/test/modules/libpq_pipeline/traces/transaction.trace @@ -1,6 +1,3 @@ -F 27 Query "SET lc_messages TO "C"" -B 8 CommandComplete "SET" -B 5 ReadyForQuery I F 79 Query "DROP TABLE IF EXISTS pq_pipeline_tst;CREATE TABLE pq_pipeline_tst (id int)" B 122 NoticeResponse S "NOTICE" V "NOTICE" C "00000" M "table "pq_pipeline_tst" does not exist, skipping" F "SSSS" L "SSSS" R "SSSS" \x00 B 15 CommandComplete "DROP TABLE" -- 2.30.2