Re: [HACKERS] WIP Patch: Pgbench Serialization and deadlock errors - Mailing list pgsql-hackers

From Marina Polyakova
Subject Re: [HACKERS] WIP Patch: Pgbench Serialization and deadlock errors
Date
Msg-id d63e60a8b741ea57e72b29c9efb2e2ca@postgrespro.ru
Whole thread Raw
In response to Re: [HACKERS] WIP Patch: Pgbench Serialization and deadlock errors  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-hackers
On 11-07-2018 20:49, Alvaro Herrera wrote:
> On 2018-Jul-11, Marina Polyakova wrote:
> 
>> can we try something like this?
>> 
>> PGBENCH_ERROR_START(DEBUG_FAIL)
>> {
>>     PGBENCH_ERROR("client %d repeats the failed transaction (try %d",
>>                   st->id, st->retries + 1);
>>     if (max_tries)
>>         PGBENCH_ERROR("/%d", max_tries);
>>     if (latency_limit)
>>     {
>>         PGBENCH_ERROR(", %.3f%% of the maximum time of tries was used",
>>                       getLatencyUsed(st, &now));
>>     }
>>     PGBENCH_ERROR(")\n");
>> }
>> PGBENCH_ERROR_END();
> 
> I didn't quite understand what these PGBENCH_ERROR() functions/macros
> are supposed to do.  Care to explain?

It is used only to print a string with the given arguments to stderr. 
Probably it might be just the function pgbench_error and not a macro..

P.S. This is my mistake, I did not think that PGBENCH_ERROR_END does not 
know the elevel for calling exit(1) if the elevel >= ERROR.

-- 
Marina Polyakova
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company


pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Negotiating the SCRAM channel binding type
Next
From: Amit Langote
Date:
Subject: Re: Problem on pg_dump RANGE partition with expressions