mirror of
https://github.com/postgres/postgres.git
synced 2025-08-25 20:23:07 +03:00
Code review for postmaster.pid contents changes.
Fix broken test for pre-existing postmaster, caused by wrong code for appending lines to the lockfile; don't write a failed listen_address setting into the lockfile; don't arbitrarily change the location of the data directory in the lockfile compared to previous releases; provide more consistent and useful definitions of the socket path and listen_address entries; avoid assuming that pg_ctl has the same DEFAULT_PGSOCKET_DIR as the postmaster; assorted code style improvements.
This commit is contained in:
@@ -348,11 +348,35 @@ extern PGDLLIMPORT bool process_shared_preload_libraries_in_progress;
|
||||
extern char *shared_preload_libraries_string;
|
||||
extern char *local_preload_libraries_string;
|
||||
|
||||
#define LOCK_FILE_LINES 7
|
||||
/*
|
||||
* As of 9.1, the contents of the data-directory lock file are:
|
||||
*
|
||||
* line #
|
||||
* 1 postmaster PID (or negative of a standalone backend's PID)
|
||||
* 2 data directory path
|
||||
* 3 postmaster start timestamp (time_t representation)
|
||||
* 4 port number
|
||||
* 5 socket directory path (empty on Windows)
|
||||
* 6 first listen_address (IP address or "*"; empty if no TCP port)
|
||||
* 7 shared memory key (not present on Windows)
|
||||
*
|
||||
* Lines 6 and up are added via AddToDataDirLockFile() after initial file
|
||||
* creation; they have to be ordered according to time of addition.
|
||||
*
|
||||
* The socket lock file, if used, has the same contents as lines 1-5.
|
||||
*/
|
||||
#define LOCK_FILE_LINE_PID 1
|
||||
#define LOCK_FILE_LINE_DATA_DIR 2
|
||||
#define LOCK_FILE_LINE_START_TIME 3
|
||||
#define LOCK_FILE_LINE_PORT 4
|
||||
#define LOCK_FILE_LINE_SOCKET_DIR 5
|
||||
#define LOCK_FILE_LINE_LISTEN_ADDR 6
|
||||
#define LOCK_FILE_LINE_SHMEM_KEY 7
|
||||
|
||||
extern void CreateDataDirLockFile(bool amPostmaster);
|
||||
extern void CreateSocketLockFile(const char *socketfile, bool amPostmaster);
|
||||
extern void TouchSocketLockFile(void);
|
||||
extern void AddToLockFile(int target_line, const char *str);
|
||||
extern void AddToDataDirLockFile(int target_line, const char *str);
|
||||
extern void ValidatePgVersion(const char *path);
|
||||
extern void process_shared_preload_libraries(void);
|
||||
extern void process_local_preload_libraries(void);
|
||||
|
Reference in New Issue
Block a user