On Tue, 2011-08-23 at 17:28 -0400, Tom Lane wrote: > Simo Sorce <simo@xxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel