code: private void handleIOException(IOException e, String action, int attempt)
              throws VoldemortException, InterruptedException {
          if ( // any of the following happens, we need to bubble up
                  // FileSystem instance got closed, somehow
                  e.getMessage().contains("Filesystem closed") ||
                  // HDFS permission issues
                  ExceptionUtils.recursiveClassEquals(e, AccessControlException.class)) {
              throw new VoldemortException("Got an IOException we cannot recover from while trying to " +
                      action + ". Attempt # " + attempt + "/" + maxAttempts + ". Will not try again.", e);
          } else {
              logFailureAndWait(action, IO_EXCEPTION, attempt, e);
          }
      }
docs: This function is intended to detect the subset of IOException which are not
  considered recoverable, in which case we want to bubble up the exception, instead
  of retrying.
  
  @throws VoldemortException