pgbench: If we fail to send a command to the server, fail.
authorRobert Haas <rhaas@postgresql.org>
Fri, 29 Sep 2017 17:51:14 +0000 (13:51 -0400)
committerRobert Haas <rhaas@postgresql.org>
Fri, 29 Sep 2017 17:55:38 +0000 (13:55 -0400)
This beats the old behavior of busy-waiting hands down.

Oversight in commit 12788ae49e1933f463bc59a6efe46c4a01701b76.

Report by Pavan Deolasee. Patch by Fabien Coelho.  Reviewed by
Pavan Deolasee.

Discussion: http://postgr.es/m/CABOikdPhfXTypckMC1Ux6Ko+hKBWwUBA=EXsvamXYSg8M9J94w@mail.gmail.com

src/bin/pgbench/pgbench.c

index e37496c971459f07ecae968a8d48bf3cd038b7ad..f0394136902b162fc5eabf58dd18ef420faa86a0 100644 (file)
@@ -2194,12 +2194,8 @@ doCustom(TState *thread, CState *st, StatsData *agg)
                {
                    if (!sendCommand(st, command))
                    {
-                       /*
-                        * Failed. Stay in CSTATE_START_COMMAND state, to
-                        * retry. ??? What the point or retrying? Should
-                        * rather abort?
-                        */
-                       return;
+                       commandFailed(st, "SQL command send failed");
+                       st->state = CSTATE_ABORTED;
                    }
                    else
                        st->state = CSTATE_WAIT_RESULT;