This morning our servers were having problems uploading photos to Amazon S3. After poking around a bit, I discovered that the connections were only sporadically failing- most of the time they worked, but the few that were not tied up all the available processes.
Unfortunately the aws/s3 gem does not allow you to specify timeouts as options, so I had to hack up the gem source code itself. I added to the
create_connection method in
http.open_timeout = 1
http.read_timeout = 5
That seems to have cleared things up for now.