From f0f99b8014ee129329dfbbe183776e8765c72662 Mon Sep 17 00:00:00 2001 From: maxz Date: Sun, 25 Jun 2023 17:14:36 +0800 Subject: [PATCH] fix fclose and switch context --- src/bin/pg_ctl/pg_ctl.cpp | 10 ++++++++-- src/gausskernel/cbb/instruments/gs_stack/gs_stack.cpp | 1 - 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/bin/pg_ctl/pg_ctl.cpp b/src/bin/pg_ctl/pg_ctl.cpp index 422a59023..196c7b262 100755 --- a/src/bin/pg_ctl/pg_ctl.cpp +++ b/src/bin/pg_ctl/pg_ctl.cpp @@ -2720,8 +2720,14 @@ static void do_switchover(uint32 term) pg_log(PG_WARNING, _("\n switchover timeout after %d seconds. please manually check the cluster status or backtrack log.\n"), wait_seconds); if ((sofile = fopen(switchover_timeout_file, "w")) == NULL) { - pg_log( - PG_WARNING, _(" could not create switchover timeout signal file \"%s\": %s\n"), switchover_timeout_file, strerror(errno)); + pg_log(PG_WARNING, _(" could not create switchover timeout signal file \"%s\": %s\n"), + switchover_timeout_file, strerror(errno)); + exit(1); + } + if (fclose(sofile)) { + pg_log(PG_WARNING, _(" could not write switchover timeout signal file \"%s\": %s\n"), switchover_timeout_file, + strerror(errno)); + sofile = NULL; exit(1); } sig = SIGUSR1; diff --git a/src/gausskernel/cbb/instruments/gs_stack/gs_stack.cpp b/src/gausskernel/cbb/instruments/gs_stack/gs_stack.cpp index b0a96eb91..304524577 100644 --- a/src/gausskernel/cbb/instruments/gs_stack/gs_stack.cpp +++ b/src/gausskernel/cbb/instruments/gs_stack/gs_stack.cpp @@ -662,7 +662,6 @@ void print_all_stack() PG_CATCH(); { /* Must reset elog.c's state */ - (void)MemoryContextSwitchTo(g_instance.stat_cxt.GsStackContext); ErrorData* edata = CopyErrorData(); FlushErrorState(); appendStringInfo(&result, "%s", edata->message);