Postgres 6.4.1 on DEC-ALPHA

Started by Adriaan Joubertover 27 years ago6 messagesgeneral
Jump to latest
#1Adriaan Joubert
a.joubert@albourne.com

Hi,

I'm having real problem to get postgres 6.4.1 to run on Alpha. It
compiled with only one minor problem, but when I try to do anything
(createdb, or psql template1) i get the following

createdb

Connection to database 'template1' failed.
FATAL 1: palloc failure: memory exhausted

createdb: database creation failed on postgres.

Running the postmaster -i -d 5 I get

-----------------------------------------
/data/pgsql/bin/postmaster: BackendStartup: pid 7916 user postgres db
template1
socket 5
/data/pgsql/bin/postmaster child[7916]: starting with
(/data/pgsql/bin/postgres,
-p, -d5, -P5, -v131072, template1, )
FindExec: found "/data/pgsql/bin/postgres" using argv[0]
debug info:
User = postgres
RemoteHost = localhost
RemotePort = 0
DatabaseName = template1
Verbose = 5
Noversion = f
timings = f
dates = Normal
bufsize = 64
sortmem = 512
query echo = f
InitPostgres
FATAL 1: palloc failure: memory exhausted
proc_exit(0) [#0]
shmem_exit(0) [#0]
exit(0)
/data/pgsql/bin/postmaster: reaping dead processes...
/data/pgsql/bin/postmaster: CleanupProc: pid 7916 exited with status 0

Does anybody have any idea where this palloc failure comes from? I've
had postgres 6.3.2 running without
any problems. And the machine has got over 600MB of memory, so that
isn't the problem.

Cheers,

Adriaan

#2Carl Riches
riches@ms.washington.edu
In reply to: Adriaan Joubert (#1)
Re: [GENERAL] Postgres 6.4.1 on DEC-ALPHA

On Tue, 22 Dec 1998, Adriaan Joubert wrote:

Hi,

I'm having real problem to get postgres 6.4.1 to run on Alpha. It
compiled with only one minor problem, but when I try to do anything
(createdb, or psql template1) i get the following

I have been unable to get postgres 6.4 to compile on our DEC Alphas
running Digital Unix 4.0d. What version of the DEC OS are you running,
and what did you have to do to make it compile?

Thanks for your help,
Carl

Carl G. Riches
Software Engineer
Department of Mathematics
Box 354350 voice: 206-543-5082 or 206-616-3636
University of Washington fax: 206-543-0397
Seattle, WA 98195-4350 internet: riches@ms.washington.edu

#3Adriaan Joubert
a.joubert@albourne.com
In reply to: Adriaan Joubert (#1)
Re: [GENERAL] Postgres 6.4.1 on DEC-ALPHA

I managed to compile postgres 6.4.1 without too much hassle, with the
following

./configure --with-CC=cc --without-CXX

There was only a single problem in

/data/build/pgsql/src/backend/port/snprintf.c

where around line 120 it should read

#ifndef HAVE_LONG_INT_64
static void fmtnum __P((long_long value, int base, int dosign, int ljust,
int le
n, int zpad));
#else
static void fmtnum __P((long value, int base, int dosign, int ljust, int
len, in
t zpad));
#endif

Then everything is fine. Don't even try with gcc -- I've also tried with
the gcc from egcs 1.0.3
and there are a lot of errors.

Problem is that even when postgres has compiled, it isn't working. I've
spent most of two days
on this now, but am back on 6.3.2 now (sigh).

Adriaan

#4Bruce Momjian
bruce@momjian.us
In reply to: Adriaan Joubert (#3)
Re: [GENERAL] Postgres 6.4.1 on DEC-ALPHA

I managed to compile postgres 6.4.1 without too much hassle, with the
following

./configure --with-CC=cc --without-CXX

There was only a single problem in

/data/build/pgsql/src/backend/port/snprintf.c

where around line 120 it should read

#ifndef HAVE_LONG_INT_64
static void fmtnum __P((long_long value, int base, int dosign, int ljust,
int le
n, int zpad));
#else
static void fmtnum __P((long value, int base, int dosign, int ljust, int
len, in
t zpad));
#endif

Huh? What platform are you using?

It currently reads:

#ifndef HAVE_LONG_LONG_INT_64
static void fmtnum __P((long value, int base, int dosign, int ljust, int len, i$
#else
static void fmtnum __P((long_long value, int base, int dosign, int ljust, int l$
#endif

This was a last minute change suggested by someone, and it looked
correct. We are saying if they don't have long long, use long. It that
wrong?

Then everything is fine. Don't even try with gcc -- I've also tried with
the gcc from egcs 1.0.3
and there are a lot of errors.

Problem is that even when postgres has compiled, it isn't working. I've
spent most of two days
on this now, but am back on 6.3.2 now (sigh).

That is bad. Please send us some more info.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
#5Hiroshi Inoue
Inoue@tpf.co.jp
In reply to: Bruce Momjian (#4)
RE: [GENERAL] Postgres 6.4.1 on DEC-ALPHA

Hi all,

-----Original Message-----
From: owner-pgsql-general@postgreSQL.org
[mailto:owner-pgsql-general@postgreSQL.org]On Behalf Of Bruce Momjian
Sent: Thursday, December 24, 1998 6:14 AM
To: Adriaan Joubert
Cc: riches@ms.washington.edu; pgsql-general@postgreSQL.org
Subject: Re: [GENERAL] Postgres 6.4.1 on DEC-ALPHA

I managed to compile postgres 6.4.1 without too much hassle, with the
following

./configure --with-CC=cc --without-CXX

There was only a single problem in

/data/build/pgsql/src/backend/port/snprintf.c

where around line 120 it should read

#ifndef HAVE_LONG_INT_64
static void fmtnum __P((long_long value, int base, int dosign,

int ljust,

int le
n, int zpad));
#else
static void fmtnum __P((long value, int base, int dosign, int ljust, int
len, in
t zpad));
#endif

On my platform(Solaris 2.51 x86),I also have the same problem.
And moreover there is another problem.

On my platform,type long long exists and the following step

unsigned long_long uvalue;

causes compilation error(gcc version is 2.7.2.3). long_long is
typedef'd and unsigned (typedef) is out of specification ?

Hiroshi Inoue
Inoue@tpf.co.jp

*** src/backend/port/snprintf.c.orig	Fri Dec 18 17:00:23 1998
--- src/backend/port/snprintf.c	Wed Dec 23 16:27:05 1998
***************
*** 48,53 ****
--- 48,54 ----
  /* IRIX doesn't do 'long long' in va_arg(), so use a typedef */
  #ifdef HAVE_LONG_LONG_INT_64
  typedef long long long_long;
+ typedef unsigned long long unsigned_long_long;
  #endif

/*
***************
*** 114,120 ****

static void fmtstr __P((char *value, int ljust, int len, int zpad, int
maxwidth));

! #ifndef HAVE_LONG_INT_64
  static void fmtnum __P((long value, int base, int dosign, int ljust, int
len, int zpad));
  #else
  static void fmtnum __P((long_long value, int base, int dosign, int ljust,
int len, int zpad));
--- 115,121 ----

static void fmtstr __P((char *value, int ljust, int len, int zpad, int
maxwidth));

! #ifndef HAVE_LONG_LONG_INT_64
  static void fmtnum __P((long value, int base, int dosign, int ljust, int
len, int zpad));
  #else
  static void fmtnum __P((long_long value, int base, int dosign, int ljust,
int len, int zpad));
***************
*** 350,356 ****
  {
  	int			signvalue = 0;
  #ifdef HAVE_LONG_LONG_INT_64
! 	unsigned long_long uvalue;
  #else
  	unsigned long uvalue;
  #endif
--- 351,357 ----
  {
  	int			signvalue = 0;
  #ifdef HAVE_LONG_LONG_INT_64
! 	unsigned_long_long uvalue;
  #else
  	unsigned long uvalue;
  #endif
#6Bruce Momjian
bruce@momjian.us
In reply to: Hiroshi Inoue (#5)
Re: [GENERAL] Postgres 6.4.1 on DEC-ALPHA

[Charset iso-8859-1 unsupported, filtering to ASCII...]

Hi all,

-----Original Message-----
From: owner-pgsql-general@postgreSQL.org
[mailto:owner-pgsql-general@postgreSQL.org]On Behalf Of Bruce Momjian
Sent: Thursday, December 24, 1998 6:14 AM
To: Adriaan Joubert
Cc: riches@ms.washington.edu; pgsql-general@postgreSQL.org
Subject: Re: [GENERAL] Postgres 6.4.1 on DEC-ALPHA

I managed to compile postgres 6.4.1 without too much hassle, with the
following

./configure --with-CC=cc --without-CXX

There was only a single problem in

/data/build/pgsql/src/backend/port/snprintf.c

where around line 120 it should read

#ifndef HAVE_LONG_INT_64
static void fmtnum __P((long_long value, int base, int dosign,

int ljust,

int le
n, int zpad));
#else
static void fmtnum __P((long value, int base, int dosign, int ljust, int
len, in
t zpad));
#endif

On my platform(Solaris 2.51 x86),I also have the same problem.
And moreover there is another problem.

On my platform,type long long exists and the following step

unsigned long_long uvalue;

causes compilation error(gcc version is 2.7.2.3). long_long is
typedef'd and unsigned (typedef) is out of specification ?

Yes, you have found two problems. HAVE_LONG should have been
HAVE_LONG_LONG, and you can't unsigned a typedef. I have applied fixes
for both of these.

This long long stuff was clearly broken, but now that we have configure
properly recognizing it, the snprint stuff is showing our problems.

Looks like we will need a patch for these problems.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026