From ce100861687353998d3f1c2b28c61447e8102c58 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 28 Jul 2016 11:39:11 -0400 Subject: [PATCH] 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: --- contrib/pg_upgrade/server.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/pg_upgrade/server.c b/contrib/pg_upgrade/server.c index e86540b9d7..a4c2b6d50d 100644 --- a/contrib/pg_upgrade/server.c +++ b/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 -- 2.40.0