Re: strange warning sign relating to storage manager

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Will Childs-Klein <willck93(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: strange warning sign relating to storage manager
Date: 2013-04-27 22:08:20
Message-ID: 21204.1367100500@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Will Childs-Klein <willck93(at)gmail(dot)com> writes:
> I've been doing some extensive modifications of the storage manager (md.c)
> in postgres. My code all compiles just fine, but when i run initdb, i
> receive the following output:

> "creating template1 database in /home/accts/wdc22/pgdata/base/1 ... ok
> initializing pg_authid ... WARNING: no roles are defined in this database
> system
> HINT: You should immediately run CREATE USER "wdc22" SUPERUSER;.
> FATAL: database "template1" does not exist
> child process exited with exit code 1"

> I've searched around for what this means, but I can't find anything.

A few moments with grep would've showed you that the WARNING means no
rows were found in a seqscan of pg_authid. The system is able to plow
ahead anyway in single-user mode, but then it evidently also can't find
the row that should exist in pg_database for template1. So yeah,
something is wrong with your storage stuff; the rows inserted during
bootstrap aren't getting found, or aren't visible, or some such, during
a subsequent single-user-mode run.

I'd suggest running initdb with --noclean and then trying to start a
standalone backend by hand under gdb, so you can trace through things
and see why it's not seeing the rows. You could also eyeball the
so-far-created files to see if they contain what you expect.

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2013-04-27 22:12:24 Re: exactly what is COPY BOTH mode supposed to do in case of an error?
Previous Message Will Childs-Klein 2013-04-27 21:51:58 strange warning sign relating to storage manager