Re: Current CVS tip segfaulting

Поиск
Список
Период
Сортировка
От Alvaro Herrera Munoz
Тема Re: Current CVS tip segfaulting
Дата
Msg-id 20040424023021.GA30353@dcc.uchile.cl
обсуждение исходный текст
Ответ на Re: Current CVS tip segfaulting  (Alvaro Herrera Munoz <alvherre@dcc.uchile.cl>)
Ответы Re: Current CVS tip segfaulting  (Bruce Momjian <pgman@candle.pha.pa.us>)
Re: Current CVS tip segfaulting  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Current CVS tip segfaulting  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
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 (<alvherre[@]dcc.uchile.cl>)
"Et put se mouve" (Galileo Galilei)


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Alvaro Herrera Munoz
Дата:
Сообщение: Re: Current CVS tip segfaulting
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Current CVS tip segfaulting