Re: Wrong return code in vacuumdb when multiple jobs are used
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Julien Rouhaud <rjuju123@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2019-05-04T09:15:04Z
Lists: pgsql-hackers
On Sat, May 04, 2019 at 10:35:23AM +0200, Julien Rouhaud wrote: > While reading vacuumdb code, I just noticed that it can return 0 if an > error happen when -j is used, if errors happen on the last batch of > commands. Yes, I agree that this is wrong. GetIdleSlot() is much more careful about that than vacuum_one_database(), so your patch looks good at quick glance. > This behavior exists since 9.5. Trivial patch attached. I'm not sure > that a TAP test is required here, so I didn't add one. I'll be happy > to do so though if needed. You could make that reliable by getting a lock on a table using a two-phase transaction, and your test case from upthread won't fly high as we have no facility in PostgresNode.pm to keep around a session's state using psql. FWIW, I am not convinced that it is a case worth bothering, so no tests is fine. -- Michael
Commits
-
Fix error status of vacuumdb when multiple jobs are used
- a475b1e77e13 9.5.18 landed
- a9a886c6fd9b 9.6.14 landed
- db8802a99ed7 10.9 landed
- 25f12acd53f6 11.4 landed
- 3ae3c18b3628 12.0 landed