Comment 13 for bug 795025

Revision history for this message
Martin Pool (mbp) wrote :

After some discussion with robert (thanks), I don't think this requires any more lp code changes. It can possibly even be considered closed at the moment, though it might need some changes to the deployment configs.

An SSH server can be taken out of rotation using HAProxy; it will keep serving its current clients. It can be left running as long as you like; it doesn't need to block deployment of the new code.

We do need to eventually clean up the old tree, which can be done only when all the processes that are using it have finished. This is not very urgent but we don't want weeks-old code still running or using up disk space.

I suggest we give the old processes a few hours to complete, which should be enough for any process that ever is actually going to terminate. It will leave us with then just long-running pollers.

Then we can send a sighup to all the backend processes, which will cause them to exit when they complete the current request. We can wait a while for that to finish, perhaps ten minutes or more. Then we kill any processes that remain.

New bzr clients should reconnect; old ones may error out but we will have already restricted this to long lived pollers which perhaps need to expect to be treated a bit roughly.

This should be either not too laborious to do manually, or fairly easy to script.