Register atexit hook only once in pg_upgrade.

start_postmaster() registered stop_postmaster_atexit as an atexit(3)
callback each time through, although the obvious intention was to do
so only once per program run.  The extra registrations were harmless,
so long as we didn't exceed ATEXIT_MAX, but still it's a bug.

Artur Zakirov, with bikeshedding by Kyotaro Horiguchi and me

Discussion: <d279e817-02b5-caa6-215f-cfb05dce109a@postgrespro.ru>
REL9_1_STABLE
Tom Lane 10 years ago
parent d243bf77c2
commit ce10086168
  1. 3
      contrib/pg_upgrade/server.c

@ -144,9 +144,10 @@ start_postmaster(ClusterInfo *cluster)
{
char cmd[MAXPGPATH];
PGconn *conn;
bool exit_hook_registered = false;
int pg_ctl_return = 0;
static bool exit_hook_registered = false;
#ifndef WIN32
char *output_filename = log_opts.filename;
#else

Loading…
Cancel
Save