"ITAGAKI Takahiro" <itagaki.takahiro@oss.ntt.co.jp> wrote:
> Bug reference: 3969
> Description: pg_ctl cannot detect server startup
> Details:
> pg_ctl -w -o "-p 5432 -c max_connections=100" start
> waits for server startup forever and timeout,
> but server has successfully started actually.
I found this bug comes from the definition of WHITESPACE
characters in pg_ctl.c. WHITESPACE is defined as folows:
#define WHITESPACE "\f\n\r\t\v"
In fact, WHITESPACE does not contain whilespace (0x20) :-(
I attach a patch to fix it.
BTW, I also found similar definitions in some places.
(Please grep with "\t\n\r".)
They are a bit different from each other.
For example, whitespaces is defined as " \t\n\r" in tzparser.c.
Is it ok in the inconsistency? Or, should we always use " \f\n\r\t\v" ?
Index: src/bin/pg_ctl/pg_ctl.c
===================================================================
--- src/bin/pg_ctl/pg_ctl.c (HEAD)
+++ src/bin/pg_ctl/pg_ctl.c (working copy)
@@ -49,7 +49,7 @@
typedef long pgpid_t;
-#define WHITESPACE "\f\n\r\t\v" /* as defined by isspace() */
+#define WHITESPACE " \f\n\r\t\v" /* as defined by isspace() */
/* postgres version ident string */
#define PM_VERSIONSTR "postgres (PostgreSQL) " PG_VERSION "\n"
Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center