On Tue, 2011-08-23 at 17:28 -0400, Tom Lane wrote:
> Simo Sorce <s...@redhat.com> writes:
> > ... If instead the socket is listening but not really accepting and
> > processing requests, then yes, you can have a deadlock.
> 
> > So socket activation is not transparent by any means and needs to be
> > handled very carefully in terms of circular dependencies as they may
> > actually introduce deadlocks that weren't there before.
> 
> Yeah.  Another way in which socket activation is not transparent is that
> code might try to determine whether the service is running by seeing
> whether a connection attempt succeeds.  In such a case, having the
> service autostart is absolutely *not* the desired outcome.  Both mysql
> and postgresql suffer from this problem --- there's no other way for
> "mysqladmin ping" to work, for example.  This issue is currently
> preventing both of those databases from being packaged as
> socket-activated services.  I could try to get the upstreams to think
> about inventing non-connection-based protocols for testing database
> server status, but I doubt that either one will be receptive.

I fail to see any reason why you would want to socket-activate a
database. Either you need the database, so it should start asap, or
don't.

Using socket-activation as a hammer to throw around as a way to make
implicit dependencies between services is just wrong imho.

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Reply via email to