v6-0003-Suppress-error-messages-unless-client-abort.patch
text/plain
Filename: v6-0003-Suppress-error-messages-unless-client-abort.patch
Type: text/plain
Part: 2
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v6-0003
Subject: Suppress error messages unless client abort
| File | + | − |
|---|---|---|
| src/bin/pgbench/pgbench.c | 7 | 3 |
| src/bin/pgbench/t/001_pgbench_with_server.pl | 7 | 7 |
From 6d916730e26384e7f3a559515bd16d0d9831064b Mon Sep 17 00:00:00 2001
From: Rintaro Ikeda <ikedarintarof@oss.nttdata.com>
Date: Wed, 9 Jul 2025 23:46:19 +0900
Subject: [PATCH v6 3/3] Suppress error messages unless client abort
Suppress error messages for individual failed SQL commands and report them only
hen the client aborts
---
src/bin/pgbench/pgbench.c | 10 +++++++---
src/bin/pgbench/t/001_pgbench_with_server.pl | 14 +++++++-------
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c
index 95a7083ede0..26995b93313 100644
--- a/src/bin/pgbench/pgbench.c
+++ b/src/bin/pgbench/pgbench.c
@@ -3385,9 +3385,10 @@ readCommandResponse(CState *st, MetaCommand meta, char *varprefix)
default:
/* anything else is unexpected */
- pg_log_error("client %d script %d aborted in command %d query %d: %s",
- st->id, st->use_file, st->command, qrynum,
- PQerrorMessage(st->con));
+ if (verbose_errors)
+ pg_log_error("client %d script %d aborted in command %d query %d: %s",
+ st->id, st->use_file, st->command, qrynum,
+ PQerrorMessage(st->con));
goto error;
}
@@ -4030,7 +4031,10 @@ advanceConnectionState(TState *thread, CState *st, StatsData *agg)
canRetryError(st->estatus))
st->state = CSTATE_ERROR;
else
+ {
+ pg_log_error("client %d aborted while executing SQL commands", st->id);
st->state = CSTATE_ABORTED;
+ }
break;
/*
diff --git a/src/bin/pgbench/t/001_pgbench_with_server.pl b/src/bin/pgbench/t/001_pgbench_with_server.pl
index 8bb35dda5f7..a38a1cf4ab7 100644
--- a/src/bin/pgbench/t/001_pgbench_with_server.pl
+++ b/src/bin/pgbench/t/001_pgbench_with_server.pl
@@ -301,7 +301,7 @@ $node->append_conf('postgresql.conf',
. "log_parameter_max_length_on_error = 0");
$node->reload;
$node->pgbench(
- '-n -t1 -c1 -M prepared',
+ '-n -t1 -c1 -M prepared --verbose',
2,
[],
[
@@ -328,7 +328,7 @@ $node->append_conf('postgresql.conf',
. "log_parameter_max_length_on_error = 64");
$node->reload;
$node->pgbench(
- '-n -t1 -c1 -M prepared',
+ '-n -t1 -c1 -M prepared --verbose',
2,
[],
[
@@ -342,7 +342,7 @@ SELECT 1 / (random() / 2)::int, :one::int, :two::int;
}
});
$node->pgbench(
- '-n -t1 -c1 -M prepared',
+ '-n -t1 -c1 -M prepared --verbose',
2,
[],
[
@@ -370,7 +370,7 @@ $node->append_conf('postgresql.conf',
. "log_parameter_max_length_on_error = -1");
$node->reload;
$node->pgbench(
- '-n -t1 -c1 -M prepared',
+ '-n -t1 -c1 -M prepared --verbose',
2,
[],
[
@@ -387,7 +387,7 @@ SELECT 1 / (random() / 2)::int, :one::int, :two::int;
$node->append_conf('postgresql.conf', "log_min_duration_statement = 0");
$node->reload;
$node->pgbench(
- '-n -t1 -c1 -M prepared',
+ '-n -t1 -c1 -M prepared --verbose',
2,
[],
[
@@ -410,7 +410,7 @@ $log = undef;
# Check that bad parameters are reported during typinput phase of BIND
$node->pgbench(
- '-n -t1 -c1 -M prepared',
+ '-n -t1 -c1 -M prepared --verbose',
2,
[],
[
@@ -1464,7 +1464,7 @@ for my $e (@errors)
my $n = '001_pgbench_error_' . $name;
$n =~ s/ /_/g;
$node->pgbench(
- '-n -t 1 -Dfoo=bla -Dnull=null -Dtrue=true -Done=1 -Dzero=0.0 -Dbadtrue=trueXXX'
+ '-n -t 1 -Dfoo=bla -Dnull=null -Dtrue=true -Done=1 -Dzero=0.0 -Dbadtrue=trueXXX --verbose'
. ' -Dmaxint=9223372036854775807 -Dminint=-9223372036854775808'
. ($no_prepare ? '' : ' -M prepared'),
$status,
--
2.39.5 (Apple Git-154)