FYI, I just tried:

        $ psql lkjasdf
        psql: FATAL:  database "lkjasdf" does not exist
        (2) cat /u/pg/server.log
        LOG:  database system was shut down at 2004-04-23 15:23:20 EDT
        LOG:  checkpoint record is at 0/9DCCCC
        LOG:  redo record is at 0/9DCCCC; undo record is at 0/0; shutdown TRUE
        LOG:  next transaction ID: 457; next OID: 17208
        LOG:  database system is ready
        FATAL:  database "lkjasdf" does not exist

That looks OK to me on BSD/OS.

I can put a copy of CVS head on my ftp site for testing if you wish.

---------------------------------------------------------------------------

Alvaro Herrera Munoz wrote:
> On Fri, Apr 23, 2004 at 08:38:29PM -0400, Alvaro Herrera Munoz wrote:
> > On Fri, Apr 23, 2004 at 07:00:05PM -0400, Bruce Momjian wrote:
> > > 
> > > Please recompile with debug symbols and report back the stack trace. 
> > > See the faq on running debug.
> > 
> > No, I already did that (all my builds are like that anyway and I read
> > stack traces more frequently than I'd like).  The "can't read pathname"
> > message I don't understand, but I had never seen it.
> 
> strace'ing the postmaster suggested me that the dbname string in
> utils/init/postinit.c, the InitPostgres function, is the culprit.
> In fact, if I apply the following patch to tcop/postgres.c the
> whole thing stops happening.  I don't know if this is the correct
> fix, but it may suggest something.  Maybe it's a problem with my
> platform's argv handling (Mandrakelinux 10, kernel 2.6.3, glibc 2.3.3).
> 
> Index: postgres.c
> ===================================================================
> RCS file: /home/alvherre/cvs/pgsql-server/src/backend/tcop/postgres.c,v
> retrieving revision 1.400
> diff -c -r1.400 postgres.c
> *** postgres.c  19 Apr 2004 17:42:58 -0000  1.400
> --- postgres.c  24 Apr 2004 02:20:47 -0000
> ***************
> *** 2686,2692 ****
>                      errhint("Try \"%s --help\" for more information.", argv[0])));
>         }
>         else if (argc - optind == 1)
> !           dbname = argv[optind];
>         else if ((dbname = username) == NULL)
>         {
>             ereport(FATAL,
> --- 2648,2654 ----
>                      errhint("Try \"%s --help\" for more information.", argv[0])));
>         }
>         else if (argc - optind == 1)
> !           dbname = pstrdup(argv[optind]);
>         else if ((dbname = username) == NULL)
>         {
>             ereport(FATAL,
> 
> -- 
> Alvaro Herrera (<[EMAIL PROTECTED]>)
> "Et put se mouve" (Galileo Galilei)
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to