Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Fix error status of vacuumdb when multiple jobs are used
authorMichael Paquier <michael@paquier.xyz>
Thu, 9 May 2019 01:30:08 +0000 (10:30 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 9 May 2019 01:30:08 +0000 (10:30 +0900)
When running a batch of VACUUM or ANALYZE commands on a given database,
there were cases where it is possible to have vacuumdb not report an
error where it actually should, leading to incorrect status results.

Author: Julien Rouhaud
Reviewed-by: Amit Kapila, Michael Paquier
Discussion: https://postgr.es/m/CAOBaU_ZuTwz7CtqLYJ1Ouuh272bTQPLN8b1bAPk0bCBm4PDMTQ@mail.gmail.com
Backpatch-through: 9.5

src/bin/scripts/vacuumdb.c

index a5fcd30478d2e89e330e0afcbae6c7a118f51051..b6f30030e990fb230c43fc84af134925139d1c33 100644 (file)
@@ -518,7 +518,10 @@ vacuum_one_database(const char *dbname, vacuumingOptions *vacopts,
        for (j = 0; j < concurrentCons; j++)
        {
            if (!GetQueryResult((slots + j)->connection, progname))
+           {
+               failed = true;
                goto finish;
+           }
        }
    }