Обсуждение: strange warning sign relating to storage manager
Hello All,
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"
Sincerely,
Will Childs-Klein
Will Childs-Klein <willck93@gmail.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