static bool retryable()

in src/fbs/meta/Utils.h [78:122]


  static bool retryable(const Status &status) {
    auto code = status.code();
    switch (StatusCode::typeOf(code)) {
      case StatusCodeType::Common:
        return false;
      case StatusCodeType::Meta:
        switch (code) {
          case MetaCode::kNotFound:
          case MetaCode::kNotEmpty:
          case MetaCode::kNotDirectory:
          case MetaCode::kTooManySymlinks:
          case MetaCode::kIsDirectory:
          case MetaCode::kExists:
          case MetaCode::kNoPermission:
          case MetaCode::kInconsistent:
          case MetaCode::kNotFile:
          case MetaCode::kBadFileSystem:
          case MetaCode::kInvalidFileLayout:
          case MetaCode::kFileHasHole:
          case MetaCode::kNameTooLong:
          case MetaCode::kRequestCanceled:
          case MetaCode::kFoundBug:
            return false;
          case MetaCode::kOTruncFailed:
          case MetaCode::kMoreChunksToRemove:
          case MetaCode::kBusy:
          case MetaCode::kInodeIdAllocFailed:
            return true;
          default:
            return code < MetaCode::kNotRetryable;
        }
      case StatusCodeType::StorageClient:
        switch (code) {
          case StorageClientCode::kChunkNotFound:
          case StorageClientCode::kChecksumMismatch:
          case StorageClientCode::kReadOnlyServer:
          case StorageClientCode::kFoundBug:
            return false;
          default:
            return true;
        }
      default:
        return code != RPCCode::kInvalidMethodID;
    }
  }