| From: | korry <korry(at)appx(dot)com> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: file-locking and postmaster.pid |
| Date: | 2006-05-24 23:12:39 |
| Message-ID: | 1148512359.16791.14.camel@sakai.localdomain |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
> We already have two platforms that don't use the SysV semaphore
> interface, and even on ones that have it, I wouldn't want to assume they
> all support SEM_UNDO.
Which platforms, just out of curiousity? I assume that Win32 is one of
them.
> But aside from any portability issues, ISTM this would have its own
> failure modes. In particular you still have to rely on a pid-file
> (only now it's holding a semaphore ID not a PID)
You've lost me... why would you store the semid and not the pid? I was
thinking that the semid might be a postgresql.conf thingie.
> and there's still
> a bit of a leap of faith required to get from the observation that
> somebody is holding a lock on semaphore X to the conclusion that that
> somebody is a conflicting postmaster.
Isn't that sort of like saying that if a postmaster.pid file exists, it
must have been written by a postmaster? Pick a semaphore id and
dedicate it to postmaster exclusion.
> It doesn't look to me like this
> is any better than the PID solution, really, as far as false positives
> go.
As long as the kernel cleans up SEM_UNDO semaphores, I guess I don't see
have you would have a false positive. Oh, I guess I should say that is
you use a SEM_UNDO semaphore, you don't need the pid check anymore.
And, no worry about NFS.
> As for false negatives: ipcrm.
Yes, that's a problem, but I think it's the same as "rm postmaster.pid",
isn't it?
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Joachim Wieland | 2006-05-24 23:51:38 | Re: Allow commenting of variables in postgresql.conf to |
| Previous Message | Tom Lane | 2006-05-24 22:53:34 | Re: file-locking and postmaster.pid |