PostgreSQL Source Code git master
|
#include "postgres.h"
#include <unistd.h>
#include <signal.h>
#include <time.h>
#include <sys/wait.h>
#include <ctype.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <fcntl.h>
#include <sys/param.h>
#include <netdb.h>
#include <limits.h>
#include "access/xlog.h"
#include "access/xlogrecovery.h"
#include "common/file_perm.h"
#include "common/pg_prng.h"
#include "lib/ilist.h"
#include "libpq/libpq.h"
#include "libpq/pqsignal.h"
#include "pg_getopt.h"
#include "pgstat.h"
#include "port/pg_bswap.h"
#include "postmaster/autovacuum.h"
#include "postmaster/bgworker_internals.h"
#include "postmaster/pgarch.h"
#include "postmaster/postmaster.h"
#include "postmaster/syslogger.h"
#include "postmaster/walsummarizer.h"
#include "replication/logicallauncher.h"
#include "replication/slotsync.h"
#include "replication/walsender.h"
#include "storage/fd.h"
#include "storage/ipc.h"
#include "storage/pmsignal.h"
#include "tcop/backend_startup.h"
#include "tcop/tcopprot.h"
#include "utils/datetime.h"
#include "utils/memutils.h"
#include "utils/pidfile.h"
#include "utils/timestamp.h"
#include "utils/varlena.h"
Go to the source code of this file.
Data Structures | |
struct | BackendTypeMask |
Macros | |
#define | MAXLISTEN 64 |
#define | NoShutdown 0 |
#define | SmartShutdown 1 |
#define | FastShutdown 2 |
#define | ImmediateShutdown 3 |
#define | SIGKILL_CHILDREN_AFTER_SECS 5 |
#define | EXIT_STATUS_0(st) ((st) == 0) |
#define | EXIT_STATUS_1(st) (WIFEXITED(st) && WEXITSTATUS(st) == 1) |
#define | EXIT_STATUS_3(st) (WIFEXITED(st) && WEXITSTATUS(st) == 3) |
#define | OPTS_FILE "postmaster.opts" |
#define | MAX_BGWORKERS_TO_LAUNCH 100 |
Enumerations | |
enum | StartupStatusEnum { STARTUP_NOT_RUNNING , STARTUP_RUNNING , STARTUP_SIGNALED , STARTUP_CRASHED } |
enum | PMState { PM_INIT , PM_STARTUP , PM_RECOVERY , PM_HOT_STANDBY , PM_RUN , PM_STOP_BACKENDS , PM_WAIT_BACKENDS , PM_SHUTDOWN , PM_SHUTDOWN_2 , PM_WAIT_DEAD_END , PM_NO_CHILDREN } |
#define EXIT_STATUS_0 | ( | st | ) | ((st) == 0) |
Definition at line 451 of file postmaster.c.
#define EXIT_STATUS_1 | ( | st | ) | (WIFEXITED(st) && WEXITSTATUS(st) == 1) |
Definition at line 452 of file postmaster.c.
#define EXIT_STATUS_3 | ( | st | ) | (WIFEXITED(st) && WEXITSTATUS(st) == 3) |
Definition at line 453 of file postmaster.c.
#define FastShutdown 2 |
Definition at line 271 of file postmaster.c.
#define ImmediateShutdown 3 |
Definition at line 272 of file postmaster.c.
#define MAX_BGWORKERS_TO_LAUNCH 100 |
#define MAXLISTEN 64 |
Definition at line 225 of file postmaster.c.
#define NoShutdown 0 |
Definition at line 269 of file postmaster.c.
#define OPTS_FILE "postmaster.opts" |
#define SIGKILL_CHILDREN_AFTER_SECS 5 |
Definition at line 351 of file postmaster.c.
#define SmartShutdown 1 |
Definition at line 270 of file postmaster.c.
enum PMState |
Enumerator | |
---|---|
PM_INIT | |
PM_STARTUP | |
PM_RECOVERY | |
PM_HOT_STANDBY | |
PM_RUN | |
PM_STOP_BACKENDS | |
PM_WAIT_BACKENDS | |
PM_SHUTDOWN | |
PM_SHUTDOWN_2 | |
PM_WAIT_DEAD_END | |
PM_NO_CHILDREN |
Definition at line 319 of file postmaster.c.
enum StartupStatusEnum |
Enumerator | |
---|---|
STARTUP_NOT_RUNNING | |
STARTUP_RUNNING | |
STARTUP_SIGNALED | |
STARTUP_CRASHED |
Definition at line 258 of file postmaster.c.
|
static |
Definition at line 3341 of file postmaster.c.
References AllocDeadEndChild(), AssignPostmasterChildSlot(), B_BACKEND, PMChild::bgworker_notify, PMChild::bkend_type, CAC_OK, CAC_TOOMANY, canAcceptConnections(), BackendStartupData::canAcceptConnections, PMChild::child_slot, DEBUG2, ereport, errcode(), errmsg(), errmsg_internal(), GetBackendTypeDesc(), LOG, PMChild::pid, postmaster_child_launch(), ReleasePostmasterChildSlot(), report_fork_failure_to_client(), PMChild::rw, ClientSocket::sock, STATUS_ERROR, and STATUS_OK.
Referenced by ServerLoop().
|
static |
Definition at line 3915 of file postmaster.c.
References BgWorkerStart_ConsistentState, BgWorkerStart_PostmasterStart, BgWorkerStart_RecoveryFinished, PM_HOT_STANDBY, PM_INIT, PM_NO_CHILDREN, PM_RECOVERY, PM_RUN, PM_SHUTDOWN, PM_SHUTDOWN_2, PM_STARTUP, PM_STOP_BACKENDS, PM_WAIT_BACKENDS, PM_WAIT_DEAD_END, pmState, and start_time.
Referenced by maybe_start_bgworkers().
|
inlinestatic |
Definition at line 145 of file postmaster.c.
References BackendTypeMask::mask.
Referenced by PostmasterStateMachine(), and process_pm_child_exit().
|
inlinestatic |
Definition at line 153 of file postmaster.c.
References BackendTypeMask::mask.
Referenced by PostmasterStateMachine().
|
inlinestatic |
Definition at line 167 of file postmaster.c.
References btmask_del(), and BTYPE_MASK_ALL.
Referenced by PostmasterStateMachine(), process_pm_reload_request(), and TerminateChildren().
|
inlinestatic |
Definition at line 176 of file postmaster.c.
References btmask_del(), and BTYPE_MASK_ALL.
Referenced by PostmasterStateMachine().
|
inlinestatic |
Definition at line 186 of file postmaster.c.
References BackendTypeMask::mask.
Referenced by CountChildren(), and SignalChildren().
|
inlinestatic |
Definition at line 160 of file postmaster.c.
References BackendTypeMask::mask.
Referenced by btmask_all_except(), and btmask_all_except2().
|
static |
Definition at line 1782 of file postmaster.c.
References Assert, B_AUTOVAC_WORKER, B_BACKEND, CAC_NOTCONSISTENT, CAC_OK, CAC_RECOVERY, CAC_SHUTDOWN, CAC_STARTUP, connsAllowed, FatalError, NoShutdown, PM_HOT_STANDBY, PM_RECOVERY, PM_RUN, PM_STARTUP, pmState, and Shutdown.
Referenced by BackendStartup(), and StartAutovacuumWorker().
|
static |
Definition at line 1486 of file postmaster.c.
References AllocateFile(), DataDir, ExitPostmaster(), FreeFile(), MAXPGPATH, PG_BINARY_R, progname, snprintf, and write_stderr.
Referenced by PostmasterMain().
|
static |
Definition at line 2542 of file postmaster.c.
References _, B_BG_WORKER, BackgroundWorkerStopNotifications(), BackgroundWorker::bgw_type, PMChild::bgworker_notify, PMChild::bkend_type, DEBUG1, DEBUG2, EXIT_STATUS_0, EXIT_STATUS_1, GetBackendTypeDesc(), GetCurrentTimestamp(), HandleChildCrash(), HaveCrashedWorker, LOG, LogChildExit(), MAXPGPATH, PMChild::pid, ReleasePostmasterChildSlot(), ReportBackgroundWorkerExit(), PMChild::rw, RegisteredBgWorker::rw_crashed_at, RegisteredBgWorker::rw_pid, RegisteredBgWorker::rw_terminate, RegisteredBgWorker::rw_worker, and snprintf.
Referenced by process_pm_child_exit().
void ClosePostmasterPorts | ( | bool | am_syslogger | ) |
Definition at line 1827 of file postmaster.c.
References close, closesocket, elog, ereport, errcode_for_file_access(), errmsg_internal(), FATAL, FreeWaitEventSetAfterFork(), i, ListenSockets, LOG, NumListenSockets, pfree(), pm_wait_set, postmaster_alive_fds, POSTMASTER_FD_OWN, ReleaseExternalFD(), and syslogPipe.
Referenced by postmaster_child_launch().
|
static |
Definition at line 1386 of file postmaster.c.
References closesocket, elog, i, ListenSockets, LOG, NumListenSockets, and RemoveSocketFiles().
Referenced by PostmasterMain().
|
static |
Definition at line 1600 of file postmaster.c.
References AddWaitEventToSet(), CreateWaitEventSet(), FreeWaitEventSet(), i, ListenSockets, MyLatch, NumListenSockets, PGINVALID_SOCKET, pm_wait_set, WL_LATCH_SET, and WL_SOCKET_ACCEPT.
Referenced by PostmasterStateMachine(), and ServerLoop().
|
static |
Definition at line 3647 of file postmaster.c.
References ActiveChildList, B_BACKEND, B_WAL_SENDER, PMChild::bkend_type, btmask_contains(), PMChild::child_slot, dlist_iter::cur, DEBUG4, dlist_container, dlist_foreach, ereport, errmsg_internal(), GetBackendTypeDesc(), IsPostmasterChildWalSender(), and PMChild::pid.
Referenced by PostmasterStateMachine().
|
static |
Definition at line 3812 of file postmaster.c.
References ereport, errcode_for_file_access(), errmsg(), fprintf, i, LOG, and OPTS_FILE.
Referenced by PostmasterMain().
|
static |
Definition at line 1515 of file postmaster.c.
References AbortStartTime, BackgroundWorkerList, BGW_NEVER_RESTART, BackgroundWorker::bgw_restart_time, dlist_mutable_iter::cur, dlist_container, dlist_foreach_modify, ForgetBackgroundWorker(), GetCurrentTimestamp(), HaveCrashedWorker, Max, Min, NoShutdown, RegisteredBgWorker::rw_crashed_at, RegisteredBgWorker::rw_terminate, RegisteredBgWorker::rw_worker, Shutdown, SIGKILL_CHILDREN_AFTER_SECS, StartWorkerNeeded, TimestampDifferenceMilliseconds(), and TimestampTzPlusMilliseconds.
Referenced by ServerLoop().
|
static |
|
static |
Definition at line 3452 of file postmaster.c.
References ereport, errcode(), errdetail(), errmsg_internal(), LOG, and proc_exit().
Referenced by checkControlFile(), PostmasterMain(), PostmasterStateMachine(), process_pm_child_exit(), and StartChildProcess().
|
static |
Definition at line 1432 of file postmaster.c.
References AllocateDir(), argv0, ereport, errcode_for_file_access(), errhint(), errmsg(), ERROR, FATAL, find_my_exec(), find_other_exec(), FreeDir(), get_pkglib_path(), my_exec_path, PG_BACKEND_VERSIONSTR, and pkglib_path.
Referenced by PostmasterMain().
|
static |
Definition at line 2194 of file postmaster.c.
References MyLatch, pending_pm_child_exit, and SetLatch().
Referenced by PostmasterMain().
|
static |
Definition at line 1946 of file postmaster.c.
References MyLatch, pending_pm_pmsignal, and SetLatch().
Referenced by PostmasterMain().
|
static |
Definition at line 1956 of file postmaster.c.
References MyLatch, pending_pm_reload_request, and SetLatch().
Referenced by PostmasterMain().
|
static |
Definition at line 2019 of file postmaster.c.
References MyLatch, pending_pm_fast_shutdown_request, pending_pm_immediate_shutdown_request, pending_pm_shutdown_request, SetLatch(), and SIGQUIT.
Referenced by PostmasterMain().
|
static |
Definition at line 2672 of file postmaster.c.
References AbortStartTime, ActiveChildList, dlist_iter::cur, dlist_container, dlist_foreach, ereport, errmsg(), FatalError, ImmediateShutdown, LOG, LogChildExit(), PM_HOT_STANDBY, PM_RECOVERY, PM_RUN, PM_SHUTDOWN, PM_STOP_BACKENDS, PM_WAIT_BACKENDS, PMQUIT_FOR_CRASH, pmState, SetQuitSignalReason(), Shutdown, sigquit_child(), STARTUP_SIGNALED, StartupPMChild, StartupStatus, and SysLoggerPMChild.
Referenced by CleanupBackend(), and process_pm_child_exit().
|
static |
Definition at line 4214 of file postmaster.c.
References Assert, ereport, errcode_for_file_access(), errcode_for_socket_access(), errmsg_internal(), FATAL, MyProcPid, postmaster_alive_fds, POSTMASTER_FD_WATCH, PostmasterPid, and ReserveExternalFD().
Referenced by PostmasterMain().
void InitProcessGlobals | ( | void | ) |
Definition at line 1904 of file postmaster.c.
References GetCurrentTimestamp(), MyProcPid, MyStartTime, MyStartTimestamp, pg_global_prng_state, pg_prng_seed(), pg_prng_strong_seed, pg_prng_uint32(), timestamptz_to_time_t(), and unlikely.
Referenced by InitPostmasterChild(), InitStandaloneProcess(), and PostmasterMain().
|
static |
Definition at line 3118 of file postmaster.c.
References AutoVacLauncherPMChild, AutoVacuumingActive(), B_ARCHIVER, B_AUTOVAC_LAUNCHER, B_BG_WRITER, B_CHECKPOINTER, B_SLOTSYNC_WORKER, B_WAL_RECEIVER, B_WAL_SUMMARIZER, B_WAL_WRITER, BgWriterPMChild, CheckpointerPMChild, HaveCrashedWorker, IsBinaryUpgrade, LOG, Logging_collector, maybe_start_bgworkers(), PgArchCanRestart(), PgArchPMChild, PM_HOT_STANDBY, PM_RECOVERY, PM_RUN, PM_STARTUP, pmState, Shutdown, SlotSyncWorkerCanRestart(), SlotSyncWorkerPMChild, SmartShutdown, start_autovac_launcher, StartChildProcess(), StartSysLogger(), StartWorkerNeeded, summarize_wal, sync_replication_slots, SysLoggerPMChild, ValidateSlotSyncParams(), WalReceiverPMChild, WalReceiverRequested, WalSummarizerPMChild, WalWriterPMChild, XLogArchivingActive, and XLogArchivingAlways.
Referenced by ServerLoop().
|
static |
Definition at line 2746 of file postmaster.c.
References ereport, errdetail(), errhint(), errmsg(), EXIT_STATUS_0, pg_strsignal(), pgstat_get_crashed_backend_activity(), WEXITSTATUS, WIFEXITED, WIFSIGNALED, and WTERMSIG.
Referenced by CleanupBackend(), HandleChildCrash(), and process_pm_child_exit().
|
static |
Definition at line 3960 of file postmaster.c.
References BackgroundWorkerList, BGW_NEVER_RESTART, BackgroundWorker::bgw_notify_pid, BackgroundWorker::bgw_restart_time, BackgroundWorker::bgw_start_time, bgworker_should_start_now(), dlist_mutable_iter::cur, dlist_container, dlist_foreach_modify, FatalError, ForgetBackgroundWorker(), GetCurrentTimestamp(), HaveCrashedWorker, kill, MAX_BGWORKERS_TO_LAUNCH, now(), RegisteredBgWorker::rw_crashed_at, RegisteredBgWorker::rw_pid, RegisteredBgWorker::rw_terminate, RegisteredBgWorker::rw_worker, SIGUSR1, StartBackgroundWorker(), StartWorkerNeeded, and TimestampDifferenceExceeds().
Referenced by LaunchMissingBackgroundProcesses(), and PostmasterMain().
void PostmasterMain | ( | int | argc, |
char * | argv[] | ||
) |
Definition at line 470 of file postmaster.c.
References AddToDataDirLockFile(), ALLOCSET_DEFAULT_SIZES, AllocSetContextCreate, appendStringInfo(), appendStringInfoString(), ApplyLauncherRegister(), ARCHIVE_MODE_OFF, Assert, autovac_init(), B_BG_WRITER, B_CHECKPOINTER, B_STARTUP, BgWriterPMChild, BlockSig, bonjour_name, ChangeToDataDir(), checkControlFile(), checkDataDir(), CheckDateTokenTables(), CheckpointerPMChild, CloseServerPorts(), CreateDataDirLockFile(), CreateOptsFile(), CreateSharedMemoryAndSemaphores(), StringInfoData::data, DEBUG3, DestNone, DISPATCH_POSTMASTER, dummy_handler(), enable_bonjour, EnableSSL, environ, ereport, err(), errcode(), errcode_for_file_access(), errhint(), errmsg(), errmsg_internal(), ERROR, ExitPostmaster(), external_pid_file, FATAL, fprintf, get_stats_option_name(), GetConfigOption(), GetConfigOptionFlags(), GetCurrentTimestamp(), getInstallationPaths(), getopt(), GUC_RUNTIME_COMPUTED, handle_pm_child_exit_signal(), handle_pm_pmsignal_signal(), handle_pm_reload_request_signal(), handle_pm_shutdown_request_signal(), HbaFileName, InitializeFastPathLocks(), InitializeGUCOptions(), InitializeLatchSupport(), InitializeMaxBackends(), InitializeShmemGUCs(), InitializeWalConsistencyChecking(), InitPostmasterChildSlots(), InitPostmasterDeathWatchHandle(), InitProcessGlobals(), InitProcessLocalLatch(), initStringInfo(), IsBinaryUpgrade, IsPostmasterEnvironment, lfirst, list_free(), list_free_deep(), ListenAddresses, ListenServerPort(), ListenSockets, load_hba(), load_ident(), LoadedSSL, LocalProcessControlFile(), LOCK_FILE_LINE_LISTEN_ADDR, LOCK_FILE_LINE_PM_STATUS, LOCK_FILE_LINE_SOCKET_DIR, LOG, Log_destination, LOG_DESTINATION_STDERR, Log_destination_string, LOG_METAINFO_DATAFILE, Logging_collector, max_wal_senders, MaxConnections, MAXLISTEN, maybe_start_bgworkers(), MemoryContextSwitchTo(), message_level_is_interesting(), my_exec_path, MyProcPid, name, NIL, NumListenSockets, on_proc_exit(), optarg, opterr, optind, palloc(), parse_dispatch_option(), ParseLongOption(), pfree(), pg_hton16, PG_MODE_MASK_OWNER, PG_TEMP_FILES_DIR, PGC_POSTMASTER, PGC_S_ARGV, PGC_S_OVERRIDE, PGC_SUSET, PgStartTime, pgwin32_signal_initialize(), PM_STARTUP, PM_STATUS_STARTING, pmState, PostmasterContext, PostmasterPid, PostPortNumber, pqinitmask(), pqsignal(), process_shared_preload_libraries(), process_shmem_requests(), progname, pstrdup(), RemoveLogrotateSignalFiles(), RemovePgTempFiles(), RemovePgTempFilesInDir(), RemovePromoteSignalFiles(), ReservedConnections, S_IRGRP, S_IROTH, S_IRUSR, S_IWUSR, secure_initialize(), SelectConfigFiles(), ServerLoop(), set_debug_options(), set_max_safe_fds(), set_plan_disabling_options(), SetConfigOption(), SIG_IGN, SIGALRM, SIGCHLD, SIGHUP, SIGPIPE, SIGQUIT, SIGUSR1, SIGUSR2, SplitDirectoriesString(), SplitGUCList(), StartChildProcess(), StartSysLogger(), STARTUP_RUNNING, StartupPMChild, StartupStatus, STATUS_OK, success, summarize_wal, SuperuserReservedConnections, TopMemoryContext, UnBlockSig, Unix_socket_directories, unlink_external_pid_file(), userDoption, value, wal_level, WAL_LEVEL_MINIMAL, WARNING, whereToSendOutput, write_stderr, and XLogArchiveMode.
Referenced by main().
bool PostmasterMarkPIDForWorkerNotify | ( | int | pid | ) |
Definition at line 4079 of file postmaster.c.
References ActiveChildList, PMChild::bgworker_notify, dlist_iter::cur, dlist_container, dlist_foreach, and PMChild::pid.
Referenced by BackgroundWorkerStateChange().
|
static |
Definition at line 2812 of file postmaster.c.
References AbortStartTime, Assert, AutoVacLauncherPMChild, B_ARCHIVER, B_AUTOVAC_LAUNCHER, B_AUTOVAC_WORKER, B_BACKEND, B_BG_WORKER, B_BG_WRITER, B_CHECKPOINTER, B_DEAD_END_BACKEND, B_INVALID, B_LOGGER, B_SLOTSYNC_WORKER, B_STANDALONE_BACKEND, B_STARTUP, B_WAL_RECEIVER, B_WAL_SENDER, B_WAL_SUMMARIZER, B_WAL_WRITER, BgWriterPMChild, btmask(), btmask_add(), btmask_all_except(), btmask_all_except2(), BTYPE_MASK_ALL, BTYPE_MASK_NONE, CheckpointerPMChild, ConfigurePostmasterWaitSet(), connsAllowed, CountChildren(), CreateSharedMemoryAndSemaphores(), ereport, errmsg(), ExitPostmaster(), FatalError, ForgetUnstartedBackgroundWorkers(), ImmediateShutdown, LocalProcessControlFile(), LOG, BackendTypeMask::mask, NoShutdown, PM_HOT_STANDBY, PM_NO_CHILDREN, PM_RUN, PM_SHUTDOWN, PM_SHUTDOWN_2, PM_STARTUP, PM_STOP_BACKENDS, PM_WAIT_BACKENDS, PM_WAIT_DEAD_END, pmState, remove_temp_files_after_crash, RemovePgTempFiles(), ResetBackgroundWorkerCrashTimes(), restart_after_crash, shmem_exit(), Shutdown, signal_child(), SignalChildren(), SIGQUIT, SIGUSR2, SlotSyncWorkerPMChild, StartChildProcess(), STARTUP_CRASHED, STARTUP_RUNNING, StartupPMChild, StartupStatus, WalReceiverPMChild, WalSummarizerPMChild, and WalWriterPMChild.
Referenced by process_pm_child_exit(), process_pm_pmsignal(), and process_pm_shutdown_request().
|
static |
Definition at line 2204 of file postmaster.c.
References _, AbortStartTime, AddToDataDirLockFile(), Assert, AutoVacLauncherPMChild, B_WAL_SENDER, BgWriterPMChild, btmask(), CheckpointerPMChild, CleanupBackend(), connsAllowed, DEBUG4, ereport, errmsg(), errmsg_internal(), EXIT_STATUS_0, EXIT_STATUS_1, EXIT_STATUS_3, ExitPostmaster(), FatalError, FindPostmasterChildByPid(), HandleChildCrash(), LOCK_FILE_LINE_PM_STATUS, LOG, LogChildExit(), Logging_collector, Max, NoShutdown, pending_pm_child_exit, PgArchPMChild, PMChild::pid, PM_RUN, PM_SHUTDOWN, PM_SHUTDOWN_2, PM_STARTUP, PM_STATUS_READY, PM_WAIT_BACKENDS, pmState, PostmasterStateMachine(), ReachedNormalRunning, ReleasePostmasterChildSlot(), Shutdown, signal_child(), SignalChildren(), SIGUSR2, SlotSyncWorkerPMChild, SmartShutdown, StartSysLogger(), STARTUP_CRASHED, STARTUP_NOT_RUNNING, STARTUP_SIGNALED, StartupPMChild, StartupStatus, StartWorkerNeeded, SysLoggerPMChild, TerminateChildren(), WalReceiverPMChild, WalSummarizerPMChild, and WalWriterPMChild.
Referenced by ServerLoop().
|
static |
Definition at line 3486 of file postmaster.c.
References AbortStartTime, AddToDataDirLockFile(), Assert, B_ARCHIVER, BackgroundWorkerStateChange(), CheckLogrotateSignal(), CheckPostmasterSignal(), CheckPromoteSignal(), connsAllowed, DEBUG2, EnableHotStandby, ereport, errmsg(), errmsg_internal(), FatalError, LOCK_FILE_LINE_PM_STATUS, LOG, NoShutdown, pending_pm_pmsignal, PgArchPMChild, PM_HOT_STANDBY, PM_RECOVERY, PM_STARTUP, PM_STATUS_READY, PM_STATUS_STANDBY, PM_STOP_BACKENDS, PMSIGNAL_ADVANCE_STATE_MACHINE, PMSIGNAL_BACKGROUND_WORKER_CHANGE, PMSIGNAL_BEGIN_HOT_STANDBY, PMSIGNAL_RECOVERY_STARTED, PMSIGNAL_ROTATE_LOGFILE, PMSIGNAL_START_AUTOVAC_LAUNCHER, PMSIGNAL_START_AUTOVAC_WORKER, PMSIGNAL_START_WALRECEIVER, pmState, PostmasterStateMachine(), RemoveLogrotateSignalFiles(), Shutdown, signal_child(), SIGUSR1, SIGUSR2, SmartShutdown, start_autovac_launcher, StartAutovacuumWorker(), StartChildProcess(), StartupPMChild, StartWorkerNeeded, SysLoggerPMChild, WalReceiverRequested, and XLogArchivingAlways.
Referenced by ServerLoop().
|
static |
Definition at line 1966 of file postmaster.c.
References B_DEAD_END_BACKEND, btmask_all_except(), DEBUG2, EnableSSL, ereport, errmsg(), errmsg_internal(), HbaFileName, IdentFileName, load_hba(), load_ident(), LoadedSSL, LOG, pending_pm_reload_request, PGC_SIGHUP, ProcessConfigFile(), secure_destroy(), secure_initialize(), Shutdown, SIGHUP, SignalChildren(), and SmartShutdown.
Referenced by ServerLoop().
|
static |
Definition at line 2043 of file postmaster.c.
References AbortStartTime, AddToDataDirLockFile(), connsAllowed, DEBUG2, ereport, errmsg(), errmsg_internal(), FastShutdown, ImmediateShutdown, LOCK_FILE_LINE_PM_STATUS, LOG, mode, pending_pm_fast_shutdown_request, pending_pm_immediate_shutdown_request, pending_pm_shutdown_request, PM_HOT_STANDBY, PM_RECOVERY, PM_RUN, PM_STARTUP, PM_STATUS_STOPPING, PM_STOP_BACKENDS, PM_WAIT_BACKENDS, PMQUIT_FOR_STOP, pmState, PostmasterStateMachine(), SetQuitSignalReason(), Shutdown, SIGQUIT, SmartShutdown, and TerminateChildren().
Referenced by ServerLoop().
|
static |
Definition at line 3425 of file postmaster.c.
References _, EINTR, pg_set_noblock(), send, snprintf, ClientSocket::sock, and strerror.
Referenced by BackendStartup().
|
static |
Definition at line 1623 of file postmaster.c.
References AbortStartTime, AcceptConnection(), Assert, AutoVacLauncherPMChild, avlauncher_needs_signal, BackendStartup(), closesocket, ConfigurePostmasterWaitSet(), DetermineSleepTime(), elog, ereport, errmsg(), FatalError, fd(), i, ImmediateShutdown, kill, LaunchMissingBackgroundProcesses(), lengthof, LOG, MAXLISTEN, MyLatch, MyProcPid, now(), pending_pm_child_exit, pending_pm_pmsignal, pending_pm_reload_request, pending_pm_shutdown_request, PGINVALID_SOCKET, PMChild::pid, pm_wait_set, process_pm_child_exit(), process_pm_pmsignal(), process_pm_reload_request(), process_pm_shutdown_request(), RecheckDataDirLockFile(), ResetLatch(), SECS_PER_MINUTE, send_abort_for_kill, Shutdown, SIGABRT, SIGKILL, SIGKILL_CHILDREN_AFTER_SECS, SIGQUIT, SIGUSR2, ClientSocket::sock, STATUS_OK, TerminateChildren(), TouchSocketFiles(), TouchSocketLockFiles(), WaitEventSetWait(), WL_LATCH_SET, and WL_SOCKET_ACCEPT.
Referenced by PostmasterMain().
|
static |
Definition at line 3239 of file postmaster.c.
References DEBUG3, elog, kill, PMChild::pid, SIGABRT, SIGKILL, and SIGQUIT.
Referenced by PostmasterStateMachine(), process_pm_child_exit(), process_pm_pmsignal(), SignalChildren(), and sigquit_child().
|
static |
Definition at line 3284 of file postmaster.c.
References ActiveChildList, B_BACKEND, B_WAL_SENDER, PMChild::bkend_type, btmask_contains(), PMChild::child_slot, dlist_iter::cur, DEBUG4, dlist_container, dlist_foreach, ereport, errmsg_internal(), GetBackendTypeDesc(), IsPostmasterChildWalSender(), PMChild::pid, and signal_child().
Referenced by PostmasterStateMachine(), process_pm_child_exit(), process_pm_reload_request(), and TerminateChildren().
|
static |
Definition at line 3271 of file postmaster.c.
References DEBUG2, ereport, errmsg_internal(), PMChild::pid, send_abort_for_crash, SIGABRT, signal_child(), and SIGQUIT.
Referenced by HandleChildCrash().
|
static |
Definition at line 3762 of file postmaster.c.
References AutoVacLauncherPMChild, AutoVacWorkerFailed(), avlauncher_needs_signal, B_AUTOVAC_WORKER, PMChild::bgworker_notify, CAC_OK, canAcceptConnections(), PMChild::rw, and StartChildProcess().
Referenced by process_pm_pmsignal().
|
static |
Definition at line 3854 of file postmaster.c.
References Assert, AssignPostmasterChildSlot(), B_BG_WORKER, BackgroundWorker::bgw_name, PMChild::bgworker_notify, PMChild::bkend_type, PMChild::child_slot, DEBUG1, ereport, errcode(), errmsg(), errmsg_internal(), GetCurrentTimestamp(), LOG, PMChild::pid, postmaster_child_launch(), ReleasePostmasterChildSlot(), ReportBackgroundWorkerPID(), PMChild::rw, RegisteredBgWorker::rw_crashed_at, RegisteredBgWorker::rw_pid, and RegisteredBgWorker::rw_worker.
Referenced by maybe_start_bgworkers().
|
static |
Definition at line 3691 of file postmaster.c.
References AssignPostmasterChildSlot(), B_AUTOVAC_WORKER, B_STARTUP, PMChild::child_slot, elog, ereport, errcode(), errmsg(), ExitPostmaster(), LOG, PMChild::pid, postmaster_child_launch(), PostmasterChildName(), ReleasePostmasterChildSlot(), and type.
Referenced by LaunchMissingBackgroundProcesses(), PostmasterMain(), PostmasterStateMachine(), process_pm_pmsignal(), and StartAutovacuumWorker().
|
static |
Definition at line 3737 of file postmaster.c.
References Assert, AssignPostmasterChildSlot(), B_LOGGER, PMChild::child_slot, elog, PANIC, PMChild::pid, ReleasePostmasterChildSlot(), SysLogger_Start(), and SysLoggerPMChild.
Referenced by LaunchMissingBackgroundProcesses(), PostmasterMain(), and process_pm_child_exit().
StaticAssertDecl | ( | ) |
|
static |
Definition at line 3322 of file postmaster.c.
References B_LOGGER, btmask_all_except(), SIGABRT, SIGKILL, SignalChildren(), SIGQUIT, STARTUP_SIGNALED, StartupPMChild, and StartupStatus.
Referenced by process_pm_child_exit(), process_pm_shutdown_request(), and ServerLoop().
|
static |
Definition at line 1420 of file postmaster.c.
References external_pid_file.
Referenced by PostmasterMain().
|
static |
Definition at line 348 of file postmaster.c.
Referenced by DetermineSleepTime(), HandleChildCrash(), PostmasterStateMachine(), process_pm_child_exit(), process_pm_pmsignal(), process_pm_shutdown_request(), and ServerLoop().
int AuthenticationTimeout = 60 |
Definition at line 233 of file postmaster.c.
Referenced by BackendInitialize(), and PerformAuthentication().
|
static |
Definition at line 252 of file postmaster.c.
Referenced by LaunchMissingBackgroundProcesses(), PostmasterStateMachine(), process_pm_child_exit(), ServerLoop(), and StartAutovacuumWorker().
|
static |
Definition at line 364 of file postmaster.c.
Referenced by ServerLoop(), and StartAutovacuumWorker().
|
static |
Definition at line 247 of file postmaster.c.
Referenced by LaunchMissingBackgroundProcesses(), PostmasterMain(), PostmasterStateMachine(), and process_pm_child_exit().
char* bonjour_name |
Definition at line 239 of file postmaster.c.
Referenced by PostmasterMain().
|
static |
Definition at line 141 of file postmaster.c.
Referenced by btmask_all_except(), btmask_all_except2(), and PostmasterStateMachine().
|
static |
Definition at line 142 of file postmaster.c.
Referenced by PostmasterStateMachine().
|
static |
Definition at line 248 of file postmaster.c.
Referenced by LaunchMissingBackgroundProcesses(), PostmasterMain(), PostmasterStateMachine(), and process_pm_child_exit().
bool ClientAuthInProgress = false |
Definition at line 355 of file postmaster.c.
Referenced by BackendInitialize(), PerformAuthentication(), ProcessInterrupts(), quickdie(), should_output_to_client(), and StatementTimeoutHandler().
|
static |
Definition at line 344 of file postmaster.c.
Referenced by canAcceptConnections(), PostmasterStateMachine(), process_pm_child_exit(), process_pm_pmsignal(), and process_pm_shutdown_request().
bool enable_bonjour = false |
Definition at line 238 of file postmaster.c.
Referenced by PostmasterMain().
bool EnableSSL = false |
Definition at line 230 of file postmaster.c.
Referenced by BackendMain(), parse_hba_line(), PostmasterMain(), and process_pm_reload_request().
|
static |
Definition at line 276 of file postmaster.c.
Referenced by canAcceptConnections(), HandleChildCrash(), maybe_start_bgworkers(), PostmasterStateMachine(), process_pm_child_exit(), process_pm_pmsignal(), and ServerLoop().
|
static |
Definition at line 371 of file postmaster.c.
Referenced by CleanupBackend(), DetermineSleepTime(), LaunchMissingBackgroundProcesses(), and maybe_start_bgworkers().
char* ListenAddresses |
Definition at line 201 of file postmaster.c.
Referenced by PostmasterMain().
|
static |
Definition at line 227 of file postmaster.c.
Referenced by ClosePostmasterPorts(), CloseServerPorts(), ConfigurePostmasterWaitSet(), ListenServerPort(), and PostmasterMain().
bool Log_connections = false |
Definition at line 236 of file postmaster.c.
Referenced by BackendInitialize(), ClientAuthentication(), PerformAuthentication(), and set_authn_id().
bool log_hostname |
Definition at line 235 of file postmaster.c.
Referenced by BackendInitialize().
BackgroundWorker* MyBgworkerEntry = NULL |
Definition at line 192 of file postmaster.c.
Referenced by BackgroundWorkerInitializeConnection(), BackgroundWorkerInitializeConnectionByOid(), BackgroundWorkerMain(), bgworker_die(), get_backend_type_for_log(), ParallelApplyWorkerMain(), ParallelWorkerMain(), ProcessInterrupts(), test_shm_mq_main(), and worker_spi_main().
|
static |
Definition at line 226 of file postmaster.c.
Referenced by ClosePostmasterPorts(), CloseServerPorts(), ConfigurePostmasterWaitSet(), ListenServerPort(), and PostmasterMain().
|
static |
Definition at line 375 of file postmaster.c.
Referenced by handle_pm_child_exit_signal(), process_pm_child_exit(), and ServerLoop().
|
static |
Definition at line 378 of file postmaster.c.
Referenced by handle_pm_shutdown_request_signal(), and process_pm_shutdown_request().
|
static |
Definition at line 379 of file postmaster.c.
Referenced by handle_pm_shutdown_request_signal(), and process_pm_shutdown_request().
|
static |
Definition at line 374 of file postmaster.c.
Referenced by handle_pm_pmsignal_signal(), process_pm_pmsignal(), and ServerLoop().
|
static |
Definition at line 376 of file postmaster.c.
Referenced by handle_pm_reload_request_signal(), process_pm_reload_request(), and ServerLoop().
|
static |
Definition at line 377 of file postmaster.c.
Referenced by handle_pm_shutdown_request_signal(), process_pm_shutdown_request(), and ServerLoop().
|
static |
Definition at line 253 of file postmaster.c.
Referenced by LaunchMissingBackgroundProcesses(), process_pm_child_exit(), and process_pm_pmsignal().
|
static |
Definition at line 382 of file postmaster.c.
Referenced by ClosePostmasterPorts(), ConfigurePostmasterWaitSet(), and ServerLoop().
Definition at line 336 of file postmaster.c.
Referenced by bgworker_should_start_now(), canAcceptConnections(), HandleChildCrash(), LaunchMissingBackgroundProcesses(), PostmasterMain(), PostmasterStateMachine(), process_pm_child_exit(), process_pm_pmsignal(), and process_pm_shutdown_request().
int postmaster_alive_fds[2] = {-1, -1} |
Definition at line 460 of file postmaster.c.
Referenced by AddWaitEventToSet(), ClosePostmasterPorts(), InitPostmasterChild(), InitPostmasterDeathWatchHandle(), and PostmasterIsAliveInternal().
int PostPortNumber = DEF_PGPORT |
Definition at line 195 of file postmaster.c.
Referenced by CreateLockFile(), and PostmasterMain().
int PreAuthDelay = 0 |
Definition at line 232 of file postmaster.c.
Referenced by BackendInitialize().
|
static |
Definition at line 353 of file postmaster.c.
Referenced by process_pm_child_exit().
bool redirection_done = false |
Definition at line 358 of file postmaster.c.
Referenced by send_message_to_server_log(), SysLogger_Start(), SysLoggerMain(), and write_console().
bool remove_temp_files_after_crash = true |
Definition at line 241 of file postmaster.c.
Referenced by PostmasterStateMachine().
int ReservedConnections |
Definition at line 222 of file postmaster.c.
Referenced by InitPostgres(), and PostmasterMain().
bool restart_after_crash = true |
Definition at line 240 of file postmaster.c.
Referenced by PostmasterStateMachine().
bool send_abort_for_crash = false |
Definition at line 242 of file postmaster.c.
Referenced by sigquit_child().
bool send_abort_for_kill = false |
Definition at line 243 of file postmaster.c.
Referenced by ServerLoop().
|
static |
Definition at line 274 of file postmaster.c.
Referenced by canAcceptConnections(), DetermineSleepTime(), HandleChildCrash(), LaunchMissingBackgroundProcesses(), PostmasterStateMachine(), process_pm_child_exit(), process_pm_pmsignal(), process_pm_reload_request(), process_pm_shutdown_request(), and ServerLoop().
|
static |
Definition at line 255 of file postmaster.c.
Referenced by LaunchMissingBackgroundProcesses(), PostmasterStateMachine(), and process_pm_child_exit().
|
static |
Definition at line 361 of file postmaster.c.
Referenced by LaunchMissingBackgroundProcesses(), and process_pm_pmsignal().
|
static |
Definition at line 246 of file postmaster.c.
Referenced by HandleChildCrash(), PostmasterMain(), PostmasterStateMachine(), process_pm_child_exit(), process_pm_pmsignal(), and TerminateChildren().
|
static |
Definition at line 266 of file postmaster.c.
Referenced by HandleChildCrash(), PostmasterMain(), PostmasterStateMachine(), process_pm_child_exit(), and TerminateChildren().
|
static |
Definition at line 370 of file postmaster.c.
Referenced by DetermineSleepTime(), LaunchMissingBackgroundProcesses(), maybe_start_bgworkers(), process_pm_child_exit(), and process_pm_pmsignal().
int SuperuserReservedConnections |
Definition at line 221 of file postmaster.c.
Referenced by InitPostgres(), and PostmasterMain().
|
static |
Definition at line 254 of file postmaster.c.
Referenced by HandleChildCrash(), LaunchMissingBackgroundProcesses(), process_pm_child_exit(), process_pm_pmsignal(), and StartSysLogger().
char* Unix_socket_directories |
Definition at line 198 of file postmaster.c.
Referenced by PostmasterMain().
|
static |
Definition at line 250 of file postmaster.c.
Referenced by LaunchMissingBackgroundProcesses(), PostmasterStateMachine(), and process_pm_child_exit().
|
static |
Definition at line 367 of file postmaster.c.
Referenced by LaunchMissingBackgroundProcesses(), and process_pm_pmsignal().
|
static |
Definition at line 251 of file postmaster.c.
Referenced by LaunchMissingBackgroundProcesses(), PostmasterStateMachine(), and process_pm_child_exit().
|
static |
Definition at line 249 of file postmaster.c.
Referenced by LaunchMissingBackgroundProcesses(), PostmasterStateMachine(), and process_pm_child_exit().