Re: [HACKERS] pgbench - minor fix for meta command only scripts - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: [HACKERS] pgbench - minor fix for meta command only scripts
Date
Msg-id CAMkU=1xCmFMHC1z3SPXU6s-LQiEaJ9z=11_nLLKY3rJ6uMkMuw@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] pgbench - minor fix for meta command only scripts  (Fabien COELHO <coelho@cri.ensmp.fr>)
Responses Re: [HACKERS] pgbench - minor fix for meta command only scripts  (Fabien COELHO <coelho@cri.ensmp.fr>)
List pgsql-hackers
On Mon, Sep 4, 2017 at 1:56 PM, Fabien COELHO <coelho@cri.ensmp.fr> wrote:

Hello Jeff,

I have fixed a bug introduced in the patch by changing && by || in the
(min_sec > 0 && maxsock != -1) condition which was inducing errors with
multi-threads & clients...

Since this commit (12788ae49e1933f463bc5), if I use the --rate to throttle
the transaction rate, it does get throttled to about the indicated speed,
but the pg_bench consumes the entire CPU.


At the block of code starting
       if (min_usec > 0 && maxsock != -1)

If maxsock == -1, then there is no sleep happening.

Argh, shame on me:-(

I cannot find the "induced errors" I was refering to in the message... Sleeping is definitely needed to avoid a hard loop.

Patch attached fixes it and does not seem introduce any special issue...

Should probably be backpatched.

Thanks for the debug!

Thanks Fabien, that works for me.  

But if min_sec <= 0, do we want to do whatever it is that we already know is over-do, before stopping to do the select?  If it is safe to go through this code path when maxsock == -1, then should we just change it to this?

if (min_usec > 0)

Cheers,

Jeff

pgsql-hackers by date:

Previous
From: Fabien COELHO
Date:
Subject: Re: [HACKERS] pgbench - minor fix for meta command only scripts
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] pgbench tap tests & minor fixes.