pgbench: Fix handling of socket errors during benchmark.
authorFujii Masao
Wed, 29 Sep 2021 12:01:10 +0000 (21:01 +0900)
committerFujii Masao
Wed, 29 Sep 2021 12:49:29 +0000 (21:49 +0900)
Previously socket errors such as invalid socket or socket wait method failures
during benchmark caused pgbench to exit with status 0. Instead, errors during
the run should result in exit status 2.

Back-patch to v12 where pgbench started reporting exit status.

Original complaint and patch by Hayato Kuroda.

Author: Yugo Nagata, Fabien COELHO
Reviewed-by: Kyotaro Horiguchi, Fujii Masao
Discussion: https://postgr.es/m/TYCPR01MB5870057375ACA8A73099C649F5349@TYCPR01MB5870.jpnprd01.prod.outlook.com

src/bin/pgbench/pgbench.c

index 734752e65093d8e101e68f0237798214d81938e0..d2c0ed3dfca6329ec34c3a2949db6aea4fd0b036 100644 (file)
@@ -6563,7 +6563,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 */