So the problem here is that the container is paused, not stopped. If it is paused it will freeze the container, and any network request is simply not answered (not even reset). Eg., a request to a stopped swift object server container looks like this: [root@cocurl http://172.17.4.10:6000 curl: (7) Failed connect to 172.17.4.10:6000; Connection refused However, a curl request to a paused container just hangs - there is no RST sent by the server, it simply waits. The same happens in the Swift code and it seems like the client hits the timeout then, before Swift has a chance to try another server. I think we need a better way to handle errors like this. If you stop the container and try uploading the image, it will succeed (using the two remaining servers).
*** Bug 1668370 has been marked as a duplicate of this bug. ***