Re: 2nd update on TOAST

Jan Wieck <janwieck@t-online.de>

From: JanWieck@t-online.de (Jan Wieck)
To: Bruce Momjian <pgman@candle.pha.pa.us>
Cc: Jan Wieck <JanWieck@Yahoo.com>, Philip Warner <pjw@rhyme.com.au>, PostgreSQL HACKERS <pgsql-hackers@postgresql.org>
Date: 2000-07-06T21:51:03Z
Lists: pgsql-hackers
Bruce Momjian wrote:
> > > OK, I've updated from CVS and rebuilt & it worked. The, to be sure, I did a
> > > 'make distclean' then a 'make' & 'make install' again, and now postmaster
> > > wont start (SIGSEGV). I have rebuild with '-O0 -g', gone into gdb, but the
> > > process dies so I cant get a backtrace.
> >
> >     Have the same symptom with a completely fresh cvs checkout.
> >
> > > If anyone can give me some tips on tracking this down, I would appreciate
> > > it....
> >
> >     Bruce  applied  a  patch  to configure.in yesterday. Read the
> >     comments from the cvslog. It tells that it triggers a bug  in
> >     the  Linux  kernels  fcntl(SETLK)  code  when  used with unix
> >     domain sockets, and that the bug is present in Linux  kernels
> >     <=  2.2.16. I'm running a 2.2.12 here, and so it exactly dies
> >     in pqcomm.c line 229 on fcntl() against the socket.
>
> I thought when he said flock() bug, he meant only on the new IA64
> platform, not on all Linux platforms.  Yikes, I enable flock(), and it
> breaks initdb for all the Linux users.  This is a problem!

    Not initdb, but postmaster. That's the one who tries (after a
    successful initdb) to  do  the  fcntl(F_SETLK)  on  the  unix
    domain  socket.   Causing  the  kernel saying "go to hell, go
    directly, don't write a core,  don't  leave  useful  info  in
    gdb".

    The  only reason I see for the entire section is to detect if
    it would be safe to unlink the socket because  it's  left  by
    another  postmaster  in case of abnormal termination. Tell me
    if I've misread it.   So  why  not  doing  it  on  the  Linux
    platform    different,    using    a   separate   file   like
    .s.PGSQL.5432.LCK?


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #