Skip to content

Commit

Permalink
Register atexit hook only once in pg_upgrade.
Browse files Browse the repository at this point in the history
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: <[email protected]>
  • Loading branch information
tglsfdc committed Jul 28, 2016
1 parent de8c92e commit d9e7495
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/bin/pg_upgrade/server.c
Original file line number Diff line number Diff line change
Expand Up @@ -174,10 +174,11 @@ start_postmaster(ClusterInfo *cluster, bool throw_error)
{
char cmd[MAXPGPATH * 4 + 1000];
PGconn *conn;
bool exit_hook_registered = false;
bool pg_ctl_return = false;
char socket_string[MAXPGPATH + 200];

static bool exit_hook_registered = false;

if (!exit_hook_registered)
{
atexit(stop_postmaster_atexit);
Expand Down

0 comments on commit d9e7495

Please sign in to comment.