Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-15132 Über-jira: WASB client phase III: roll-up for Hadoop 3.2
  3. HADOOP-14582

WASB exception handling to translate specific failures into specific exceptions

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.8.1
    • None
    • fs/azure
    • None

    Description

      Mucht of the exception handling logic in WASB is a catch-and-wrap-as-IOE handler.

          } catch (Exception e) {
            // Re-throw the exception as an Azure storage exception.
            throw new AzureException(e);
          }
      

      This works, but

      1. it doesn't offer much in the way of diagnostics
      2. There's no way to make sense of the failure
      3. It catches and wraps IOEs, which don't need wrapping
      4. It can double wrap IOEs around storage exceptions. Example PageBlobInputStream constructor wraps StorageException with IOE; if raised in AzureNativeFileSystemStore.retrieve() it will be caught and wrapped again.

      Proposed: something akin to where S3A's translateException is going:

      • take an incoming StorageException and based on its errorcode, choose whether or not to wrap in a specific java exception (FNFE, access denied, ...).
      • AzureException to make it easy to get at the details
      • Include operation & path in error text

      Attachments

        Activity

          People

            Unassigned Unassigned
            stevel@apache.org Steve Loughran
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: