This is an automated email from the ASF dual-hosted git repository.
chenjinbao1989 pushed a commit to branch cbdb-postgres-merge
in repository https://gitbox.apache.org/repos/asf/cloudberry.git
The following commit(s) were added to refs/heads/cbdb-postgres-merge by this
push:
new 752460093c6 Fix conflicts for postmaster
752460093c6 is described below
commit 752460093c6bfdbf244049bdce48f48cde3784fa
Author: Jinbao Chen <[email protected]>
AuthorDate: Fri Jul 25 15:22:02 2025 +0800
Fix conflicts for postmaster
---
src/backend/postmaster/autovacuum.c | 33 -------
src/backend/postmaster/interrupt.c | 3 -
src/backend/postmaster/pgarch.c | 106 ---------------------
src/backend/postmaster/postmaster.c | 144 +----------------------------
src/backend/postmaster/syslogger.c | 180 ++----------------------------------
src/common/percentrepl.c | 4 +
6 files changed, 18 insertions(+), 452 deletions(-)
diff --git a/src/backend/postmaster/autovacuum.c
b/src/backend/postmaster/autovacuum.c
index ac32a30baf8..7372a51a373 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -125,10 +125,7 @@
#include "catalog/namespace.h"
#include "catalog/pg_am.h"
#include "catalog/pg_database.h"
-<<<<<<< HEAD
-=======
#include "catalog/pg_namespace.h"
->>>>>>> REL_16_9
#include "commands/dbcommands.h"
#include "commands/vacuum.h"
#include "lib/ilist.h"
@@ -185,14 +182,7 @@ int
autovacuum_multixact_freeze_max_age;
double autovacuum_vac_cost_delay;
int autovacuum_vac_cost_limit;
-<<<<<<< HEAD
-int Log_autovacuum_min_duration = 0;
-
-/* how long to keep pgstat data in the launcher, in milliseconds */
-#define STATS_READ_DELAY 1000
-=======
int Log_autovacuum_min_duration = 600000;
->>>>>>> REL_16_9
/* the minimum allowed time between two awakenings of the launcher */
#define MIN_AUTOVAC_SLEEPTIME 100.0 /* milliseconds */
@@ -2237,15 +2227,11 @@ do_autovacuum(void)
bool wraparound;
if (classForm->relkind != RELKIND_RELATION &&
-<<<<<<< HEAD
classForm->relkind != RELKIND_DIRECTORY_TABLE &&
classForm->relkind != RELKIND_MATVIEW &&
classForm->relkind != RELKIND_AOSEGMENTS &&
classForm->relkind != RELKIND_AOBLOCKDIR &&
classForm->relkind != RELKIND_AOVISIMAP)
-=======
- classForm->relkind != RELKIND_MATVIEW)
->>>>>>> REL_16_9
continue;
relid = classForm->oid;
@@ -2955,15 +2941,11 @@ extract_autovac_opts(HeapTuple tup, TupleDesc
pg_class_desc)
Assert(((Form_pg_class) GETSTRUCT(tup))->relkind == RELKIND_RELATION ||
((Form_pg_class) GETSTRUCT(tup))->relkind == RELKIND_MATVIEW
||
-<<<<<<< HEAD
((Form_pg_class) GETSTRUCT(tup))->relkind ==
RELKIND_DIRECTORY_TABLE ||
((Form_pg_class) GETSTRUCT(tup))->relkind ==
RELKIND_TOASTVALUE ||
((Form_pg_class) GETSTRUCT(tup))->relkind ==
RELKIND_AOSEGMENTS ||
((Form_pg_class) GETSTRUCT(tup))->relkind ==
RELKIND_AOBLOCKDIR ||
((Form_pg_class) GETSTRUCT(tup))->relkind ==
RELKIND_AOVISIMAP);
-=======
- ((Form_pg_class) GETSTRUCT(tup))->relkind ==
RELKIND_TOASTVALUE);
->>>>>>> REL_16_9
relam = ((Form_pg_class) GETSTRUCT(tup))->relam;
tam = GetTableAmRoutineByAmId(relam);
@@ -3104,16 +3086,11 @@ table_recheck_autovac(Oid relid, HTAB *table_toast_map,
tab->at_params.multixact_freeze_table_age =
multixact_freeze_table_age;
tab->at_params.is_wraparound = wraparound;
tab->at_params.log_min_duration = log_min_duration;
-<<<<<<< HEAD
tab->at_params.auto_stats = false;
- tab->at_vacuum_cost_limit = vac_cost_limit;
- tab->at_vacuum_cost_delay = vac_cost_delay;
-=======
tab->at_storage_param_vac_cost_limit = avopts ?
avopts->vacuum_cost_limit : 0;
tab->at_storage_param_vac_cost_delay = avopts ?
avopts->vacuum_cost_delay : -1;
->>>>>>> REL_16_9
tab->at_relname = NULL;
tab->at_nspname = NULL;
tab->at_datname = NULL;
@@ -3239,19 +3216,13 @@ relation_needs_vacanalyze(Oid relid,
TransactionId xidForceLimit;
MultiXactId multiForceLimit;
-<<<<<<< HEAD
/*
* We don't need to hold AutovacuumLock here, since it should be
read-only in the worker itself
* once the MyWorkerInfo gets set, all the workers only care about its
own value.
*/
Assert(MyWorkerInfo);
-
- AssertArg(classForm != NULL);
- AssertArg(OidIsValid(relid));
-=======
Assert(classForm != NULL);
Assert(OidIsValid(relid));
->>>>>>> REL_16_9
/*
* Determine vacuum/analyze equation parameters. We have two possible
@@ -3431,15 +3402,12 @@ autovacuum_do_vac_analyze(autovac_table *tab,
BufferAccessStrategy bstrategy)
rel = makeVacuumRelation(rangevar, tab->at_relid, NIL);
rel_list = list_make1(rel);
-<<<<<<< HEAD
#ifdef FAULT_INJECTOR
FaultInjector_InjectFaultIfSet(
"auto_vac_worker_after_report_activity", DDLNotSpecified,
"", tab->at_relname);
#endif
- vacuum(rel_list, &tab->at_params, bstrategy, true);
-=======
vac_context = AllocSetContextCreate(CurrentMemoryContext,
"Vacuum",
ALLOCSET_DEFAULT_SIZES);
@@ -3447,7 +3415,6 @@ autovacuum_do_vac_analyze(autovac_table *tab,
BufferAccessStrategy bstrategy)
vacuum(rel_list, &tab->at_params, bstrategy, vac_context, true);
MemoryContextDelete(vac_context);
->>>>>>> REL_16_9
}
/*
diff --git a/src/backend/postmaster/interrupt.c
b/src/backend/postmaster/interrupt.c
index 1b39878118a..54c39e5395c 100644
--- a/src/backend/postmaster/interrupt.c
+++ b/src/backend/postmaster/interrupt.c
@@ -22,11 +22,8 @@
#include "storage/latch.h"
#include "storage/procsignal.h"
#include "utils/guc.h"
-<<<<<<< HEAD
#include "utils/faultinjector.h"
-=======
#include "utils/memutils.h"
->>>>>>> REL_16_9
volatile sig_atomic_t ConfigReloadPending = false;
volatile sig_atomic_t ShutdownRequestPending = false;
diff --git a/src/backend/postmaster/pgarch.c b/src/backend/postmaster/pgarch.c
index 4d6c489b16f..5f3f50b4df2 100644
--- a/src/backend/postmaster/pgarch.c
+++ b/src/backend/postmaster/pgarch.c
@@ -31,11 +31,8 @@
#include "access/xlog.h"
#include "access/xlog_internal.h"
-<<<<<<< HEAD
-=======
#include "archive/archive_module.h"
#include "archive/shell_archive.h"
->>>>>>> REL_16_9
#include "lib/binaryheap.h"
#include "libpq/pqsignal.h"
#include "pgstat.h"
@@ -91,12 +88,7 @@ typedef struct PgArchData
int pgprocno; /* pgprocno of archiver
process */
/*
-<<<<<<< HEAD
- * Forces a directory scan in pgarch_readyXlog(). Protected by
- * arch_lck.
-=======
* Forces a directory scan in pgarch_readyXlog(). Protected by
arch_lck.
->>>>>>> REL_16_9
*/
bool force_dir_scan;
@@ -183,13 +175,9 @@ static bool pgarch_readyXlog(char *xlog);
static void pgarch_archiveDone(char *xlog);
static void pgarch_die(int code, Datum arg);
static void HandlePgArchInterrupts(void);
-<<<<<<< HEAD
-static int ready_file_comparator(Datum a, Datum b, void *arg);
-=======
static int ready_file_comparator(Datum a, Datum b, void *arg);
static void LoadArchiveLibrary(void);
static void pgarch_call_module_shutdown_cb(int code, Datum arg);
->>>>>>> REL_16_9
/* Report shared memory space needed by PgArchShmemInit */
Size
@@ -294,12 +282,9 @@ PgArchiverMain(void)
arch_files->arch_heap =
binaryheap_allocate(NUM_FILES_PER_DIRECTORY_SCAN,
ready_file_comparator, NULL);
-<<<<<<< HEAD
-=======
/* Load the archive_library. */
LoadArchiveLibrary();
->>>>>>> REL_16_9
pgarch_MainLoop();
proc_exit(0);
@@ -550,72 +535,8 @@ pgarch_archiveXlog(char *xlog)
char activitymsg[MAXFNAMELEN + 16];
bool ret;
- char contentid[12]; /* sign, 10 digits and '\0' */
-
snprintf(pathname, MAXPGPATH, XLOGDIR "/%s", xlog);
-<<<<<<< HEAD
- /*
- * construct the command to be executed
- */
- dp = xlogarchcmd;
- endp = xlogarchcmd + MAXPGPATH - 1;
- *endp = '\0';
-
- for (sp = XLogArchiveCommand; *sp; sp++)
- {
- if (*sp == '%')
- {
- switch (sp[1])
- {
- case 'p':
- /* %p: relative path of source file */
- sp++;
- strlcpy(dp, pathname, endp - dp);
- make_native_path(dp);
- dp += strlen(dp);
- break;
- case 'f':
- /* %f: filename of source file */
- sp++;
- strlcpy(dp, xlog, endp - dp);
- dp += strlen(dp);
- break;
- case 'c':
- /* GPDB: %c: contentId of segment */
- Assert(GpIdentity.segindex !=
UNINITIALIZED_GP_IDENTITY_VALUE);
- sp++;
- pg_ltoa(GpIdentity.segindex, contentid);
- strlcpy(dp, contentid, endp - dp);
- dp += strlen(dp);
- break;
- case '%':
- /* convert %% to a single % */
- sp++;
- if (dp < endp)
- *dp++ = *sp;
- break;
- default:
- /* otherwise treat the % as not special
*/
- if (dp < endp)
- *dp++ = *sp;
- break;
- }
- }
- else
- {
- if (dp < endp)
- *dp++ = *sp;
- }
- }
- *dp = '\0';
-
- ereport(DEBUG3,
- (errmsg_internal("executing archive command \"%s\"",
- xlogarchcmd)));
-
-=======
->>>>>>> REL_16_9
/* Report archive activity in PS display */
snprintf(activitymsg, sizeof(activitymsg), "archiving %s", xlog);
set_ps_display(activitymsg);
@@ -674,15 +595,6 @@ pgarch_readyXlog(char *xlog)
/*
* If we still have stored file names from the previous directory scan,
-<<<<<<< HEAD
- * try to return one of those. We check to make sure the status file
- * is still present, as the archive_command for a previous file may
- * have already marked it done.
- */
- while (arch_files->arch_files_size > 0)
- {
- struct stat st;
-=======
* try to return one of those. We check to make sure the status file is
* still present, as the archive_command for a previous file may have
* already marked it done.
@@ -690,7 +602,6 @@ pgarch_readyXlog(char *xlog)
while (arch_files->arch_files_size > 0)
{
struct stat st;
->>>>>>> REL_16_9
char status_file[MAXPGPATH];
char *arch_file;
@@ -760,13 +671,8 @@ pgarch_readyXlog(char *xlog)
CStringGetDatum(basename), NULL) > 0)
{
/*
-<<<<<<< HEAD
- * Remove the lowest priority file and add the current
one to
- * the heap.
-=======
* Remove the lowest priority file and add the current
one to the
* heap.
->>>>>>> REL_16_9
*/
arch_file =
DatumGetCString(binaryheap_remove_first(arch_files->arch_heap));
strcpy(arch_file, basename);
@@ -787,13 +693,8 @@ pgarch_readyXlog(char *xlog)
binaryheap_build(arch_files->arch_heap);
/*
-<<<<<<< HEAD
- * Fill arch_files array with the files to archive in ascending order
- * of priority.
-=======
* Fill arch_files array with the files to archive in ascending order of
* priority.
->>>>>>> REL_16_9
*/
arch_files->arch_files_size = arch_files->arch_heap->bh_size;
for (int i = 0; i < arch_files->arch_files_size; i++)
@@ -817,17 +718,10 @@ pgarch_readyXlog(char *xlog)
static int
ready_file_comparator(Datum a, Datum b, void *arg)
{
-<<<<<<< HEAD
- char *a_str = DatumGetCString(a);
- char *b_str = DatumGetCString(b);
- bool a_history = IsTLHistoryFileName(a_str);
- bool b_history = IsTLHistoryFileName(b_str);
-=======
char *a_str = DatumGetCString(a);
char *b_str = DatumGetCString(b);
bool a_history = IsTLHistoryFileName(a_str);
bool b_history = IsTLHistoryFileName(b_str);
->>>>>>> REL_16_9
/* Timeline history files always have the highest priority. */
if (a_history != b_history)
diff --git a/src/backend/postmaster/postmaster.c
b/src/backend/postmaster/postmaster.c
index c79d003c174..245e7c75866 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -32,13 +32,9 @@
* clients.
*
*
-<<<<<<< HEAD
* Portions Copyright (c) 2005-2009, Greenplum inc
* Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
* Portions Copyright (c) 1994, Regents of the University of California
*
*
@@ -238,7 +234,6 @@ char *Unix_socket_directories;
char *ListenAddresses;
/*
-<<<<<<< HEAD
* The interconnect address. We assume the interconnect is the address
* in gp_segment_configuration. And it's never changed at runtime.
*/
@@ -252,7 +247,6 @@ char *interconnect_address = NULL;
* "if there are <= ReservedBackends connections available, only superusers
* can make new connections" --- pre-existing superuser connections don't
* count against the limit.
-=======
* SuperuserReservedConnections is the number of backends reserved for
* superuser use, and ReservedConnections is the number of backends reserved
* for use by roles with privileges of the pg_use_reserved_connections
@@ -269,7 +263,6 @@ char *interconnect_address = NULL;
* roles with privileges of pg_use_reserved_connections can make new
* connections. Note that pre-existing superuser and
* pg_use_reserved_connections connections don't count against the limits.
->>>>>>> REL_16_9
*/
int SuperuserReservedConnections;
int ReservedConnections;
@@ -293,12 +286,9 @@ bool enable_bonjour = false;
char *bonjour_name;
bool restart_after_crash = true;
bool remove_temp_files_after_crash = true;
-<<<<<<< HEAD
bool enable_password_profile = true;
-=======
bool send_abort_for_crash = false;
bool send_abort_for_kill = false;
->>>>>>> REL_16_9
/* Hook for plugins to start background workers */
start_bgworkers_hook_type start_bgworkers_hook = NULL;
@@ -315,13 +305,8 @@ static pid_t StartupPID = 0,
WalReceiverPID = 0,
AutoVacPID = 0,
PgArchPID = 0,
-<<<<<<< HEAD
- PgStatPID = 0,
SysLoggerPID = 0,
LoginMonitorPID = 0;
-=======
- SysLoggerPID = 0;
->>>>>>> REL_16_9
/* Startup process's status */
typedef enum
@@ -556,12 +541,8 @@ static int ServerLoop(void);
static int BackendStartup(Port *port);
static int ProcessStartupPacket(Port *port, bool ssl_done, bool gss_done);
static void SendNegotiateProtocolVersion(List *unrecognized_protocol_options);
-<<<<<<< HEAD
static void processCancelRequest(Port *port, void *pkt, MsgType code);
static int initMasks(fd_set *rmask);
-=======
-static void processCancelRequest(Port *port, void *pkt);
->>>>>>> REL_16_9
static void report_fork_failure_to_client(Port *port, int errnum);
static CAC_state canAcceptConnections(int backend_type);
static bool RandomCancelKey(int32 *cancel_key);
@@ -792,7 +773,6 @@ PostmasterMain(int argc, char *argv[])
/*
* Set up signal handlers for the postmaster process.
*
-<<<<<<< HEAD
* In the postmaster, we use pqsignal_pm() rather than pqsignal() (which
* is used by all child processes and client processes). That has a
* couple of special behaviors:
@@ -813,8 +793,6 @@ PostmasterMain(int argc, char *argv[])
* flag. We expect children to set up their own handlers before
* unblocking signals.
*
-=======
->>>>>>> REL_16_9
* CAUTION: when changing this list, check for side-effects on the
signal
* handling setup of child processes. See tcop/postgres.c,
* bootstrap/bootstrap.c, postmaster/bgwriter.c, postmaster/walwriter.c,
@@ -872,11 +850,7 @@ PostmasterMain(int argc, char *argv[])
* tcop/postgres.c (the option sets should not conflict) and with the
* common help() function in main/main.c.
*/
-<<<<<<< HEAD
- while ((opt = getopt(argc, argv,
"B:bc:C:D:d:EeFf:h:ijk:lMmN:nOo:Pp:r:R:S:sTt:W:-:")) != -1)
-=======
- while ((opt = getopt(argc, argv,
"B:bC:c:D:d:EeFf:h:ijk:lN:OPp:r:S:sTt:W:-:")) != -1)
->>>>>>> REL_16_9
+ while ((opt = getopt(argc, argv,
"B:bc:C:D:d:EeFf:h:ijk:lMmN:Oo:Pp:r:R:S:sTt:W:-:")) != -1)
{
switch (opt)
{
@@ -1158,9 +1132,7 @@ PostmasterMain(int argc, char *argv[])
* non-leaf QEs don't necessarily access the database (some are used only
* for sorting, hashing, etc); so again the number of buffers need not be
* in proportion to the number of connections.
- */
-<<<<<<< HEAD
- if (NBuffers < 16)
+ */if (NBuffers < 16)
{
/*
* Do not accept -B so small that backends are likely to starve
for
@@ -1177,10 +1149,7 @@ PostmasterMain(int argc, char *argv[])
* max_connections. Hence, in gpdb below check is modified from
upstream to
* allow equal setting.
*/
- if (ReservedBackends > MaxConnections)
-=======
if (SuperuserReservedConnections + ReservedConnections >=
MaxConnections)
->>>>>>> REL_16_9
{
write_stderr("%s: superuser_reserved_connections (%d) plus
reserved_connections (%d) must be less than max_connections (%d)\n",
progname,
@@ -1289,7 +1258,6 @@ PostmasterMain(int argc, char *argv[])
LocalProcessControlFile(false);
/*
-<<<<<<< HEAD
* CDB: gpdb auxilary process like fts probe, dtx recovery process is
* essential, we need to load them ahead of custom shared preload
libraries
* to avoid exceeding max_worker_processes.
@@ -1297,14 +1265,8 @@ PostmasterMain(int argc, char *argv[])
load_auxiliary_libraries();
/*
- * Register the apply launcher. Since it registers a background worker,
- * it needs to be called before InitializeMaxBackends(), and it's
probably
- * a good idea to call it before any modules had chance to take the
- * background worker slots.
-=======
* Register the apply launcher. It's probably a good idea to call this
* before any modules had a chance to take the background worker slots.
->>>>>>> REL_16_9
*/
ApplyLauncherRegister();
@@ -1336,17 +1298,7 @@ PostmasterMain(int argc, char *argv[])
InitializeMaxBackends();
/*
-<<<<<<< HEAD
- * Now that modules have been loaded, we can process any custom resource
- * managers specified in the wal_consistency_checking GUC.
- */
- InitializeWalConsistencyChecking();
-
- /*
- * Set up shared memory and semaphores.
-=======
* Give preloaded libraries a chance to request additional shared
memory.
->>>>>>> REL_16_9
*/
process_shmem_requests();
@@ -1735,13 +1687,8 @@ PostmasterMain(int argc, char *argv[])
* since there is no way to connect to the database in this
case.
*/
ereport(FATAL,
-<<<<<<< HEAD
(errcode(ERRCODE_CONFIG_FILE_ERROR),
(errmsg("could not load pg_hba.conf"))));
-=======
- /* translator: %s is a configuration file */
- (errmsg("could not load %s", HbaFileName)));
->>>>>>> REL_16_9
}
if (!load_ident())
{
@@ -2331,7 +2278,6 @@ ServerLoop(void)
}
/*
-<<<<<<< HEAD
* Initialise the masks for select() for the ports we are listening on.
* Return the number of sockets to listen on.
*/
@@ -2384,8 +2330,6 @@ GetMirrorReadyFlag(void)
}
/*
-=======
->>>>>>> REL_16_9
* Read a client's startup packet and do something according to it.
*
* Returns STATUS_OK or STATUS_ERROR, or might call ereport(FATAL) and
@@ -2483,18 +2427,7 @@ ProcessStartupPacket(Port *port, bool ssl_done, bool
gss_done)
if (proto == CANCEL_REQUEST_CODE || proto == FINISH_REQUEST_CODE)
{
-<<<<<<< HEAD
processCancelRequest(port, buf, proto);
-=======
- if (len != sizeof(CancelRequestPacket))
- {
- ereport(COMMERROR,
- (errcode(ERRCODE_PROTOCOL_VIOLATION),
- errmsg("invalid length of startup
packet")));
- return STATUS_ERROR;
- }
- processCancelRequest(port, buf);
->>>>>>> REL_16_9
/* Not really an error, but we don't want to proceed further */
return STATUS_ERROR;
}
@@ -2921,7 +2854,6 @@ retry1:
(errcode(ERRCODE_TOO_MANY_CONNECTIONS),
errmsg("sorry, too many clients
already")));
break;
-<<<<<<< HEAD
case CAC_MIRROR_READY:
if (am_ftshandler || am_faulthandler)
{
@@ -2956,8 +2888,6 @@ retry1:
case CAC_SUPERUSER:
/* OK for now, will check in InitPostgres */
break;
-=======
->>>>>>> REL_16_9
case CAC_OK:
break;
}
@@ -3324,8 +3254,6 @@ handle_pm_pmsignal_signal(SIGNAL_ARGS)
{
int save_errno = errno;
-<<<<<<< HEAD
-=======
pending_pm_pmsignal = true;
SetLatch(MyLatch);
@@ -3357,7 +3285,6 @@ process_pm_reload_request(void)
ereport(DEBUG2,
(errmsg_internal("postmaster received reload request
signal")));
->>>>>>> REL_16_9
if (Shutdown <= SmartShutdown)
{
ereport(LOG,
@@ -3380,13 +3307,8 @@ process_pm_reload_request(void)
signal_child(PgArchPID, SIGHUP);
if (SysLoggerPID != 0)
signal_child(SysLoggerPID, SIGHUP);
-<<<<<<< HEAD
- if (PgStatPID != 0)
- signal_child(PgStatPID, SIGHUP);
if (enable_password_profile && LoginMonitorPID != 0)
signal_child(LoginMonitorPID, SIGHUP);
-=======
->>>>>>> REL_16_9
/* Reload authentication config files too */
if (!load_hba())
@@ -3420,11 +3342,6 @@ process_pm_reload_request(void)
write_nondefault_variables(PGC_SIGHUP);
#endif
}
-<<<<<<< HEAD
-
- errno = save_errno;
-=======
->>>>>>> REL_16_9
}
/*
@@ -3436,13 +3353,6 @@ handle_pm_shutdown_request_signal(SIGNAL_ARGS)
{
int save_errno = errno;
-<<<<<<< HEAD
- ereport(DEBUG2,
- (errmsg_internal("postmaster received signal %d",
- postgres_signal_arg)));
-
-=======
->>>>>>> REL_16_9
switch (postgres_signal_arg)
{
case SIGTERM:
@@ -3617,8 +3527,7 @@ process_pm_shutdown_request(void)
}
}
-<<<<<<< HEAD
-=======
+
static void
handle_pm_child_exit_signal(SIGNAL_ARGS)
{
@@ -3627,7 +3536,6 @@ handle_pm_child_exit_signal(SIGNAL_ARGS)
pending_pm_child_exit = true;
SetLatch(MyLatch);
->>>>>>> REL_16_9
errno = save_errno;
}
@@ -3640,11 +3548,8 @@ process_pm_child_exit(void)
int pid; /* process id of dead
child process */
int exitstatus; /* its exit status */
-<<<<<<< HEAD
-=======
pending_pm_child_exit = false;
->>>>>>> REL_16_9
ereport(DEBUG4,
(errmsg_internal("reaping dead processes")));
@@ -3761,13 +3666,8 @@ process_pm_child_exit(void)
AutoVacPID = StartAutoVacLauncher();
if (PgArchStartupAllowed() && PgArchPID == 0)
PgArchPID = StartArchiver();
-<<<<<<< HEAD
- if (PgStatPID == 0)
- PgStatPID = pgstat_start();
if (enable_password_profile && LoginMonitorPID == 0)
LoginMonitorPID = StartLoginMonitorLauncher();
-=======
->>>>>>> REL_16_9
/* workers may be scheduled to start now */
maybe_start_bgworkers();
@@ -3973,11 +3873,6 @@ process_pm_child_exit(void)
* or actions to make.
*/
PostmasterStateMachine();
-<<<<<<< HEAD
-
- errno = save_errno;
-=======
->>>>>>> REL_16_9
}
/*
@@ -4603,10 +4498,7 @@ PostmasterStateMachine(void)
Assert(CheckpointerPID == 0);
Assert(WalWriterPID == 0);
Assert(AutoVacPID == 0);
-<<<<<<< HEAD
Assert(LoginMonitorPID == 0);
-=======
->>>>>>> REL_16_9
/* syslogger is not considered here */
pmState = PM_NO_CHILDREN;
}
@@ -4699,15 +4591,13 @@ PostmasterStateMachine(void)
/* crash recovery started, reset SIGKILL flag */
AbortStartTime = 0;
-<<<<<<< HEAD
if (start_bgworkers_hook)
{
(*start_bgworkers_hook) (FatalError, pmState,
do_start_bgworker);
}
-=======
+
/* start accepting server socket connection events again */
ConfigurePostmasterWaitSet(true);
->>>>>>> REL_16_9
}
}
@@ -4838,13 +4728,8 @@ TerminateChildren(int signal)
signal_child(AutoVacPID, signal);
if (PgArchPID != 0)
signal_child(PgArchPID, signal);
-<<<<<<< HEAD
- if (PgStatPID != 0)
- signal_child(PgStatPID, signal);
if (enable_password_profile && LoginMonitorPID != 0)
signal_child(LoginMonitorPID, signal);
-=======
->>>>>>> REL_16_9
}
/*
@@ -4891,13 +4776,8 @@ BackendStartup(Port *port)
/* Pass down canAcceptConnections state */
port->canAcceptConnections = canAcceptConnections(BACKEND_TYPE_NORMAL);
-<<<<<<< HEAD
bn->dead_end = (port->canAcceptConnections != CAC_OK &&
- port->canAcceptConnections !=
CAC_SUPERUSER &&
port->canAcceptConnections !=
CAC_MIRROR_READY);
-=======
- bn->dead_end = (port->canAcceptConnections != CAC_OK);
->>>>>>> REL_16_9
/*
* Unless it's a dead_end child, assign it a child slot number
@@ -5199,11 +5079,7 @@ BackendInitialize(Port *port)
}
appendStringInfo(&ps_data, "%s ", port->user_name);
-<<<<<<< HEAD
- if (!am_walsender && !am_ftshandler && !am_faulthandler)
-=======
if (port->database_name[0] != '\0')
->>>>>>> REL_16_9
appendStringInfo(&ps_data, "%s ", port->database_name);
appendStringInfoString(&ps_data, port->remote_host);
if (port->remote_port[0] != '\0')
@@ -5640,13 +5516,9 @@ SubPostmasterMain(int argc, char *argv[])
if (strcmp(argv[1], "--forkbackend") == 0 ||
strcmp(argv[1], "--forkavlauncher") == 0 ||
strcmp(argv[1], "--forkavworker") == 0 ||
-<<<<<<< HEAD
strcmp(argv[1], "--forkautovac") == 0 ||
strcmp(argv[1], "--forkglobaldeadlockdetector") == 0 ||
- strcmp(argv[1], "--forkboot") == 0 ||
-=======
strcmp(argv[1], "--forkaux") == 0 ||
->>>>>>> REL_16_9
strncmp(argv[1], "--forkbgworker=", 15) == 0)
PGSharedMemoryReAttach();
else
@@ -5864,12 +5736,9 @@ process_pm_pmsignal(void)
{
pending_pm_pmsignal = false;
-<<<<<<< HEAD
-=======
ereport(DEBUG2,
(errmsg_internal("postmaster received pmsignal
signal")));
->>>>>>> REL_16_9
/*
* RECOVERY_STARTED and BEGIN_HOT_STANDBY signals are ignored in
* unexpected states. If the startup process quickly starts up,
completes
@@ -6074,11 +5943,6 @@ process_pm_pmsignal(void)
*/
signal_child(StartupPID, SIGUSR2);
}
-<<<<<<< HEAD
-
- errno = save_errno;
-=======
->>>>>>> REL_16_9
}
/*
diff --git a/src/backend/postmaster/syslogger.c
b/src/backend/postmaster/syslogger.c
index 6e00c60b673..c6b9aebf680 100644
--- a/src/backend/postmaster/syslogger.c
+++ b/src/backend/postmaster/syslogger.c
@@ -167,19 +167,14 @@ static FILE *logfile_open(const char *filename, const
char *mode,
#ifdef WIN32
static unsigned int __stdcall pipeThread(void *arg);
#endif
-<<<<<<< HEAD
static bool logfile_rotate(bool time_based_rotation, bool size_based_rotation,
const char *suffix,
const char *log_directory,
const char *log_filename,
FILE **fh, char **last_log_file_name);
static char *logfile_getname(pg_time_t timestamp, const char *suffix, const
char *log_directory, const char *log_file_pattern);
-=======
-static void logfile_rotate(bool time_based_rotation, int size_rotation_for);
static bool logfile_rotate_dest(bool time_based_rotation,
int
size_rotation_for, pg_time_t fntime,
int
target_dest, char **last_file_name,
FILE **logFile);
-static char *logfile_getname(pg_time_t timestamp, const char *suffix);
->>>>>>> REL_16_9
static void set_next_rotation_time(void);
static void sigUsr1Handler(SIGNAL_ARGS);
static void update_metainfo_datafile(void);
@@ -250,12 +245,7 @@ SysLoggerMain(int argc, char *argv[])
* SubPostmasterMain).
*/
#ifdef WIN32
-<<<<<<< HEAD
_setmode(_fileno(stderr),_O_TEXT);
-=======
- else
- _setmode(STDERR_FILENO, _O_TEXT);
->>>>>>> REL_16_9
#endif
redirection_done = true;
@@ -315,17 +305,11 @@ SysLoggerMain(int argc, char *argv[])
* time because passing down just the pg_time_t is a lot cheaper than
* passing a whole file path in the EXEC_BACKEND case.
*/
-<<<<<<< HEAD
- last_file_name = logfile_getname(first_syslogger_file_time, NULL,
Log_directory, Log_filename);
+ last_sys_file_name = logfile_getname(first_syslogger_file_time, NULL,
Log_directory, Log_filename);
if (csvlogFile != NULL)
last_csv_file_name = logfile_getname(first_syslogger_file_time,
".csv", Log_directory, Log_filename);
-=======
- last_sys_file_name = logfile_getname(first_syslogger_file_time, NULL);
- if (csvlogFile != NULL)
- last_csv_file_name = logfile_getname(first_syslogger_file_time,
".csv");
if (jsonlogFile != NULL)
- last_json_file_name =
logfile_getname(first_syslogger_file_time, ".json");
->>>>>>> REL_16_9
+ last_json_file_name =
logfile_getname(first_syslogger_file_time, ".json", Log_directory,
Log_filename);
/* remember active logfile parameters */
currentLogDir = pstrdup(Log_directory);
@@ -499,19 +483,23 @@ SysLoggerMain(int argc, char *argv[])
* was sent by pg_rotate_logfile() or "pg_ctl
logrotate".
*/
if (!time_based_rotation && size_rotation_for == 0)
-<<<<<<< HEAD
- size_rotation_for = LOG_DESTINATION_STDERR |
LOG_DESTINATION_CSVLOG;
-
+ size_rotation_for = LOG_DESTINATION_STDERR |
+
LOG_DESTINATION_CSVLOG |
+
LOG_DESTINATION_JSONLOG;
rotation_requested = false;
all_rotations_occurred &=
logfile_rotate(time_based_rotation,
(size_rotation_for & LOG_DESTINATION_STDERR) != 0,
NULL, Log_directory,
Log_filename,
- &syslogFile,
&last_file_name);
+ &syslogFile,
&last_sys_file_name);
all_rotations_occurred &=
logfile_rotate(time_based_rotation,
(size_rotation_for & LOG_DESTINATION_CSVLOG) != 0,
".csv",
Log_directory, Log_filename,
&csvlogFile,
&last_csv_file_name);
+ all_rotations_occurred &=
+ logfile_rotate(time_based_rotation,
(size_rotation_for & LOG_DESTINATION_CSVLOG) != 0,
+ ".csv",
Log_directory, Log_filename,
+
&jsonlogFile, &last_json_file_name;
}
/*
@@ -524,12 +512,6 @@ SysLoggerMain(int argc, char *argv[])
{
set_next_rotation_time();
update_metainfo_datafile();
-=======
- size_rotation_for = LOG_DESTINATION_STDERR |
- LOG_DESTINATION_CSVLOG |
- LOG_DESTINATION_JSONLOG;
- logfile_rotate(time_based_rotation, size_rotation_for);
->>>>>>> REL_16_9
}
/*
@@ -1551,26 +1533,11 @@ process_pipe_input(char *logbuffer, int
*bytes_in_logbuffer)
while (count >= sizeof(PipeProtoHeader))
{
PipeProtoHeader p;
-<<<<<<< HEAD
int chunklen;
/* Do we have a valid header? */
memcpy(&p, cursor, PIPE_HEADER_SIZE);
if (chunk_is_postgres_chunk(&p))
-=======
- int chunklen;
- bits8 dest_flags;
-
- /* Do we have a valid header? */
- memcpy(&p, cursor, offsetof(PipeProtoHeader, data));
- dest_flags = p.flags & (PIPE_PROTO_DEST_STDERR |
-
PIPE_PROTO_DEST_CSVLOG |
-
PIPE_PROTO_DEST_JSONLOG);
- if (p.nuls[0] == '\0' && p.nuls[1] == '\0' &&
- p.len > 0 && p.len <= PIPE_MAX_PAYLOAD &&
- p.pid != 0 &&
- pg_popcount((char *) &dest_flags, 1) == 1)
->>>>>>> REL_16_9
{
List *buffer_list;
ListCell *cell;
@@ -1584,10 +1551,6 @@ process_pipe_input(char *logbuffer, int
*bytes_in_logbuffer)
if (count < chunklen)
break;
-<<<<<<< HEAD
- dest = (p.log_format == 'c' || p.log_format == 'f') ?
- LOG_DESTINATION_CSVLOG : LOG_DESTINATION_STDERR;
-=======
if ((p.flags & PIPE_PROTO_DEST_STDERR) != 0)
dest = LOG_DESTINATION_STDERR;
else if ((p.flags & PIPE_PROTO_DEST_CSVLOG) != 0)
@@ -1599,7 +1562,6 @@ process_pipe_input(char *logbuffer, int
*bytes_in_logbuffer)
/* this should never happen as of the header
validation */
Assert(false);
}
->>>>>>> REL_16_9
/* Locate any existing buffer for this source pid */
buffer_list = buffer_lists[p.pid % NBUFFER_LISTS];
@@ -2007,7 +1969,6 @@ logfile_open(const char *filename, const char *mode, bool
allow_errors)
}
/*
-<<<<<<< HEAD
* perform logfile rotation.
*
* In GPDB, this has been modified significantly from the upstream version:
@@ -2021,7 +1982,6 @@ logfile_open(const char *filename, const char *mode, bool
allow_errors)
* has to do it once all calls to this function return true (i.e. after all
* rotations have been successfully completed for the current timestamp), to
* avoid having the filename timestamp advance multiple times per rotation.
-=======
* Do logfile rotation for a single destination, as specified by target_dest.
* The information stored in *last_file_name and *logFile is updated on a
* successful file rotation.
@@ -2127,7 +2087,6 @@ logfile_rotate_dest(bool time_based_rotation, int
size_rotation_for,
/*
* perform logfile rotation
->>>>>>> REL_16_9
*/
static bool
logfile_rotate(bool time_based_rotation, bool size_based_rotation,
@@ -2138,12 +2097,7 @@ logfile_rotate(bool time_based_rotation, bool
size_based_rotation,
char **last_log_file_name)
{
pg_time_t fntime;
-<<<<<<< HEAD
FILE *fh = *fh_p;
-=======
-
- rotation_requested = false;
->>>>>>> REL_16_9
/*
* When doing a time-based rotation, invent the new logfile name based
on
@@ -2154,35 +2108,12 @@ logfile_rotate(bool time_based_rotation, bool
size_based_rotation,
fntime = next_rotation_time;
else
fntime = time(NULL);
-<<<<<<< HEAD
- filename = logfile_getname(fntime, suffix, log_directory, log_filename);
- if (Log_destination & LOG_DESTINATION_CSVLOG)
- csvfilename = logfile_getname(fntime, ".csv", log_directory,
log_filename);
-
- /*
- * Decide whether to overwrite or append. We can overwrite if (a)
- * Log_truncate_on_rotation is set, (b) the rotation was triggered by
- * elapsed time and not something else, and (c) the computed file name
is
- * different from what we were previously logging into.
- *
- * Note: last_file_name should never be NULL here, but if it is, append.
- */
- if (time_based_rotation || size_based_rotation)
- {
- if (Log_truncate_on_rotation && time_based_rotation &&
- *last_log_file_name != NULL &&
- strcmp(filename, *last_log_file_name) != 0)
- fh = logfile_open(filename, "w", true);
- else
- fh = logfile_open(filename, "a", true);
-=======
/* file rotation for stderr */
if (!logfile_rotate_dest(time_based_rotation, size_rotation_for, fntime,
LOG_DESTINATION_STDERR, &last_sys_file_name,
&syslogFile))
return;
->>>>>>> REL_16_9
/* file rotation for csvlog */
if (!logfile_rotate_dest(time_based_rotation, size_rotation_for, fntime,
@@ -2190,103 +2121,12 @@ logfile_rotate(bool time_based_rotation, bool
size_based_rotation,
&csvlogFile))
return;
-<<<<<<< HEAD
- if (filename)
- pfree(filename);
- return false;
- }
-
- if (*fh_p)
- fclose(*fh_p);
- *fh_p = fh;
-
- /* instead of pfree'ing filename, remember it for next time */
- if ((*last_log_file_name) != NULL)
- pfree(*last_log_file_name);
- *last_log_file_name = filename;
- filename = NULL;
- }
-/*
- * In gpdb, `logfile_rotate` will be called separately for both csv and std
log destination.
- * We keep the code below in order to make code merging easier.
- * Note the API for this function is different. PG upstream has
size_rotation_for however gpdb
- * does not have. That's becasue we deal with size_rotation_for before calling
this function.
- * We'll call this function separately for both cases and only pass the
size_based_rotation
- * as arguments.
- */
-#if 0
- /*
- * Same as above, but for csv file. Note that if LOG_DESTINATION_CSVLOG
- * was just turned on, we might have to open csvlogFile here though it
was
- * not open before. In such a case we'll append not overwrite (since
- * last_csv_file_name will be NULL); that is consistent with the normal
- * rules since it's not a time-based rotation.
- */
- if ((Log_destination & LOG_DESTINATION_CSVLOG) &&
- (csvlogFile == NULL ||
- time_based_rotation || (size_rotation_for &
LOG_DESTINATION_CSVLOG)))
- {
- if (Log_truncate_on_rotation && time_based_rotation &&
- last_csv_file_name != NULL &&
- strcmp(csvfilename, last_csv_file_name) != 0)
- fh = logfile_open(csvfilename, "w", true);
- else
- fh = logfile_open(csvfilename, "a", true);
-
- if (!fh)
- {
- /*
- * ENFILE/EMFILE are not too surprising on a busy
system; just
- * keep using the old file till we manage to get a new
one.
- * Otherwise, assume something's wrong with
Log_directory and stop
- * trying to create files.
- */
- if (errno != ENFILE && errno != EMFILE)
- {
- ereport(LOG,
- (errmsg("disabling automatic
rotation (use SIGHUP to re-enable)")));
- rotation_disabled = true;
- }
-
- if (filename)
- pfree(filename);
- if (csvfilename)
- pfree(csvfilename);
- return;
- }
-
- if (csvlogFile != NULL)
- fclose(csvlogFile);
- csvlogFile = fh;
-
- /* instead of pfree'ing filename, remember it for next time */
- if (last_csv_file_name != NULL)
- pfree(last_csv_file_name);
- last_csv_file_name = csvfilename;
- csvfilename = NULL;
- }
- else if (!(Log_destination & LOG_DESTINATION_CSVLOG) &&
- csvlogFile != NULL)
- {
- /* CSVLOG was just turned off, so close the old file */
- fclose(csvlogFile);
- csvlogFile = NULL;
- if (last_csv_file_name != NULL)
- pfree(last_csv_file_name);
- last_csv_file_name = NULL;
- }
-#endif
-
- if (filename)
- pfree(filename);
-=======
/* file rotation for jsonlog */
if (!logfile_rotate_dest(time_based_rotation, size_rotation_for, fntime,
LOG_DESTINATION_JSONLOG, &last_json_file_name,
&jsonlogFile))
return;
->>>>>>> REL_16_9
return true;
}
diff --git a/src/common/percentrepl.c b/src/common/percentrepl.c
index c8a93b6300a..5c5a4fa0aa2 100644
--- a/src/common/percentrepl.c
+++ b/src/common/percentrepl.c
@@ -90,10 +90,14 @@ replace_percent_placeholders(const char *instr, const char
*param_name, const ch
}
else if (sp[1] == 'c')
{
+ char contentid[12];
+
/* GPDB: %c: contentId of segment */
Assert(GpIdentity.segindex !=
UNINITIALIZED_GP_IDENTITY_VALUE);
sp++;
pg_ltoa(GpIdentity.segindex, contentid);
+ appendStringInfoString(&result, contentid);
+ break;
}
else if (sp[1] == 'R')
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]