In the technology preview posts about Passenger 3 they discussed zero downtime:
In Phusion Passenger 3 we’ve implemented zero-downtime web server restart. Phusion Passenger and the web server are restarted in the background, and while this is happening, the old web server instance (with the old Phusion Passenger instance) will continue to process requests.
From what I understood, when using Passenger 3 no requests are delayed or dropped during deploy time. But from my tests with Passenger 3 and nginx this is not true. What I'm experiencing is that already made requests are completed, but new requests that are being made when deploying are delayed and waiting for Passenger to spawn new instances.
What I was expecting is that the old Passenger instances will keep serving requests until the new one is fully ready to accept incoming requests.
Did I misunderstand their explanation or I have some bad configuration?
Just to clarify, I understand that I can achieve zero downtime with multiple servers, but in this case I'm referring to one.
See following comment by Phusion CTO
http://blog.phusion.nl/2010/06/18/the-road-to-passenger-3-technology-preview-2-stability-robustness-availability-self-healing/comment-page-1/#comment-22181