Reply-To: Jordi MacDonald
authorMarc G. Fournier
Sun, 15 Mar 1998 08:15:46 +0000 (08:15 +0000)
committerMarc G. Fournier
Sun, 15 Mar 1998 08:15:46 +0000 (08:15 +0000)
There is an error in the configure script when using
--with-pgport= that will cause the compiled version of
PostgreSQL to no longer allow connections to the
new port and to treat shared memory improperly.

What happens is that if the port is changed, the configure
script defines DEF_PGPORT as "", which atoi() will return
as 0, which makes the IPC_KEY value 0. This then causes
semaphores to be allocated, but never released. Postgres
eventually returns from semget() with
"no space left on device". The source of this error could
easily be overlooked in version 6.3 since it is possible
to connect via UNIX domain sockets, and having DEF_PGPORT
defined as "0" would not be noticed until TCP was used.

src/configure
src/configure.in

index c9ed79c8f5aabb89d42bceee6f27e0b4cc201128..56d4bf5b19836095c201b2f3965bb3375ea528c0 100755 (executable)
@@ -808,7 +808,7 @@ echo "configure:807: checking setting DEF_PGPORT" >&5
 if test "${with_pgport+set}" = set; then
   withval="$with_pgport"
   cat >> confdefs.h <
-#define DEF_PGPORT "${DEF_PGPORT}"
+#define DEF_PGPORT "${withval}"
 EOF
  echo "$ac_t""$with_pgport" 1>&6
 else
@@ -1003,7 +1003,7 @@ fi
 
 echo "$ac_t""$ac_cv_prog_gcc" 1>&6
 
-if test "$ac_cv_prog_gcc" = "yes"; then
+if test $ac_cv_prog_gcc = yes; then
   GCC=yes
   ac_test_CFLAGS="${CFLAGS+set}"
   ac_save_CFLAGS="$CFLAGS"
index cdca6b643e463fe508cdb887b83e8da610689bf0..b5233efebb523a0fea3b8d6a96a4f15dc916f326 100644 (file)
@@ -230,7 +230,7 @@ AC_MSG_CHECKING(setting DEF_PGPORT)
 AC_ARG_WITH(
    pgport,
    [   --with-pgport= change default startup port ],
-   AC_DEFINE_UNQUOTED(DEF_PGPORT, "${DEF_PGPORT}") AC_MSG_RESULT($with_pgport),
+   AC_DEFINE_UNQUOTED(DEF_PGPORT, "${withval}") AC_MSG_RESULT($with_pgport),
    AC_DEFINE_UNQUOTED(DEF_PGPORT, "5432") AC_MSG_RESULT(5432)
 )