Re: do we EXEC_BACKEND on Mac OS X? - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: do we EXEC_BACKEND on Mac OS X?
Date
Msg-id 20121003170817.GC3470@momjian.us
Whole thread Raw
In response to Re: do we EXEC_BACKEND on Mac OS X?  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: do we EXEC_BACKEND on Mac OS X?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Wed, Oct  3, 2012 at 12:41:37PM -0400, Tom Lane wrote:
> I wrote:
> > Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> >> Noticed while perusing
> >> http://lwn.net/Articles/518306/
> 
> > I'm afraid Brian was just looking for an excuse to dump on Apple.  We
> > have a lot of years of Postgres experience showing that fork() works
> > fine on OS X.
> 
> BTW, I think the commenter at the bottom of the thread puts his finger
> on the core of the real problem:
> 
> > I'd wager most libraries are not fork safe, including such libraries
> > as SQLite as mentioned in the SQLite FAQ. Libraries that talk to the
> > outside world contain much state that is not safe to share.
> 
> To bring that closer to home, suppose you have a program with an open
> database connection in libpq, and you fork(), and then parent and child
> both try to use the connection.  How well would that work?  Is it the
> fault of fork()?
> 
> I think Apple is just pointing out that their framework libraries have
> similar issues.

Yes, but those framework libraries are typically supposed to prevent
such problems from being seen by applications calling them.  This is
certainly sloppy practice on Apple's part, and it leave us wondering if
we are using anything that might be a problem.  The bottom line is that
we don't know.

Libraries are supposed to document these limitations, as we do with
libpq.  I wonder if they just documented fork() and now don't feel they
need to document these limitations per-library.

Anyway, I agree that we need to see a failure before adjusting anything.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: do we EXEC_BACKEND on Mac OS X?
Next
From: Fabrízio de Royes Mello
Date:
Subject: Re: CREATE SCHEMA IF NOT EXISTS