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;