aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2012-08-29 17:05:22 -0400
committerBruce Momjian <bruce@momjian.us>2012-08-29 17:05:22 -0400
commit3825963e7fbaa8dbc462d4f5286ff6149f4703dd (patch)
tree836f64e993b2e4ddb5f855381c4b512183e8dff1 /src/backend/utils
parentc82dedb7a8a953785f24a3b10de376760d60c24c (diff)
downloadpostgresql-3825963e7fbaa8dbc462d4f5286ff6149f4703dd.tar.gz
postgresql-3825963e7fbaa8dbc462d4f5286ff6149f4703dd.zip
Report postmaster.pid file as empty if it is empty, rather than
reporting in contains invalid data.
Diffstat (limited to 'src/backend/utils')
-rw-r--r--src/backend/utils/init/miscinit.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c
index 775d71f56c5..9a0f92c2682 100644
--- a/src/backend/utils/init/miscinit.c
+++ b/src/backend/utils/init/miscinit.c
@@ -766,6 +766,14 @@ CreateLockFile(const char *filename, bool amPostmaster,
filename)));
close(fd);
+ if (len == 0)
+ {
+ ereport(FATAL,
+ (errcode(ERRCODE_LOCK_FILE_EXISTS),
+ errmsg("lock file \"%s\" is empty", filename),
+ errhint("Either another server is starting, or the lock file is the remnant of a previous server startup crash.")));
+ }
+
buffer[len] = '\0';
encoded_pid = atoi(buffer);