I think the underlying problem is that (as the traceback suggests) it cannot bind the listening socket. Could it be that 'bzr serve' or something else is already using port 4155 on this machine?
In both 1.8 and trunk I can run 'bzr serve' and get a reasonable error if it fails to bind the address because it's in use.
However, the CannotBindAddress constructor does seem strange to be indexing the original error this way. I'm not sure why this needs to be a special error class.
I think the underlying problem is that (as the traceback suggests) it cannot bind the listening socket. Could it be that 'bzr serve' or something else is already using port 4155 on this machine?
In both 1.8 and trunk I can run 'bzr serve' and get a reasonable error if it fails to bind the address because it's in use.
However, the CannotBindAddress constructor does seem strange to be indexing the original error this way. I'm not sure why this needs to be a special error class.