Re: fcntl(SETLK) [was Re: 2nd update on TOAST]

From: Mike Mascari <mascarm(at)mascari(dot)com>
To: Alfred Perlstein <bright(at)wintelcom(dot)net>
Cc: Jan Wieck <JanWieck(at)Yahoo(dot)com>, PostgreSQL HACKERS <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: fcntl(SETLK) [was Re: 2nd update on TOAST]
Date: 2000-07-08 12:54:48
Message-ID: 39672498.140BBC13@mascari.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Alfred Perlstein wrote:
>
> * Jan Wieck <JanWieck(at)t-online(dot)de> [000708 05:47] wrote:
> > Tom Lane wrote:
> > >
> > > Bruce and I were just talking by phone about this, and we realized that
> > > there is a completely different approach to making that decision: if you
> > > want to know whether there's an old postmaster connected to a socket
> > > file, try to connect to the old postmaster! In other words, pretend to
> > > be a client and see if your connection attempt is answered. (You don't
> > > have to try to log in, just see if you get a connection.) This might
> > > also answer Peter's concern about socket files that belong to
> > > non-Postgres programs, although I doubt that's really a big issue.
> > >
> > > There are some potential pitfalls here, like what if the old postmaster
> > > is there but overloaded? But on the whole it seems like it might be
> > > a cleaner answer than fooling around with lockfiles, and certainly safer
> > > than relying on fcntl(SETLK) to work on a socket file. Comments anyone?
> >
> > Like it.
>
> my $pgsocket = "/tmp/.s.PGSQL.5432";
>
> # try to connect to the postmaster
> socket(SOCK, PF_UNIX, SOCK_STREAM, 0)
> or die "unable to create unix domain socket: $!";
>
> connect(SOCK, sockaddr_un($pgsocket))
> and errexit("postmaster is running you must shut it down");
>
> oh yeah... :)
>
> -Alfred

I don't get this. Isn't there a race condition here?

Just curious,

Mike Mascari

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alfred Perlstein 2000-07-08 12:58:02 Re: fcntl(SETLK) [was Re: 2nd update on TOAST]
Previous Message Alfred Perlstein 2000-07-08 12:51:39 Re: fcntl(SETLK) [was Re: 2nd update on TOAST]