speedup startup by delaying binding of ports
we found the early binding of ports when starting up zope is problematic in our load balanced (behind a pound) setup. if a backend restarts and binds its ports, pound almost immediately thinks it's back in business and starts sending request. obviously, the server needs some more time to finish its startup; meanwhile, those requests are being unanswered (at least delayed for quite a while), and users need to wait for the response (if any). we only use high ports for the servers, so there's no real need for us to bind the ports with root privileges (of course it would be cleaner to check if low ports are configured, and only delay the binding if not).
last not least: the late binding seems to have a huge impact on the startup time (although this is no hard fact, just a feeling).
our solution is rather simple:
--- __init__.py (revision 30421)
+++ __init__.py (working copy)
@@ -88,8 +88,8 @@
# Start ZServer servers before we drop privileges so we can bind to
# "low" ports:
# drop privileges after setting up servers
@@ -100,6 +100,10 @@
# emit a "ready" message in order to prevent the kinds of emails
# to the Zope maillist in which people claim that Zope has "frozen"
# after it has emitted ZServer messages.