Re: pgbench bug candidate: negative "initial connection time"

Fabien COELHO <coelho@cri.ensmp.fr>

From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Yugo NAGATA <nagata@sraoss.co.jp>
Cc: "kuroda.hayato@fujitsu.com" <kuroda.hayato@fujitsu.com>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2021-06-17T09:52:04Z
Lists: pgsql-hackers
>> Second, currently the *only* function to change the client state is
>> advanceConnectionState, so it can be checked there and any bug is only
>> there. We had issues before when several functions where doing updates,
>> and it was a mess to understand what was going on. I really want that it
>> stays that way, so I disagree with setting the state to ABORTED from
>> threadRun. Moreover I do not see that it brings a feature, so ISTM that it
>> is not an actual issue not to do it?
>
> Ok. I gave up to change the state in threadRun. Instead, I changed the
> condition at the end of bench, which enables to report abortion due to
> socket errors.
>
> +@@ -6480,7 +6490,7 @@ main(int argc, char **argv)
> + #endif							/* ENABLE_THREAD_SAFETY */
> +
> + 		for (int j = 0; j < thread->nstate; j++)
> +-			if (thread->state[j].state == CSTATE_ABORTED)
> ++			if (thread->state[j].state != CSTATE_FINISHED)
> + 				exit_code = 2;
> +
> + 		/* aggregate thread level stats */
>
> Does this make sense?

Yes, definitely.

-- 
Fabien.



Commits

  1. pgbench: Fix typo in comment.

  2. pgbench: Improve error-handling in pgbench.

  3. pgbench: Fix handling of socket errors during benchmark.

  4. pgbench: Correct log level of message output when socket wait method fails.

  5. pgbench: Synchronize client threads.

  6. pgbench: Use common logging API