diff options
Diffstat (limited to 'lib/mogilefs/backend.rb')
-rw-r--r-- | lib/mogilefs/backend.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/mogilefs/backend.rb b/lib/mogilefs/backend.rb index cbeec3d..afc2f1a 100644 --- a/lib/mogilefs/backend.rb +++ b/lib/mogilefs/backend.rb @@ -246,15 +246,16 @@ class MogileFS::Backend raise EOFError, "end of file reached after: #{request.inspect}" # fall through to retry in loop rescue SystemCallError, - MogileFS::UnreadableSocketError, - MogileFS::InvalidResponseError, # truncated response - MogileFS::Timeout + MogileFS::InvalidResponseError # truncated response # we got a successful timed_write, but not a timed_gets if idempotent failed = true + shutdown_unlocked(false) retry end shutdown_unlocked(true) + rescue MogileFS::UnreadableSocketError, MogileFS::Timeout + shutdown_unlocked(true) rescue # we DO NOT want the response we timed out waiting for, to crop up later # on, on the same socket, intersperesed with a subsequent request! we |