Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.9.0, 3.0.0-alpha4
    • Fix Version/s: 2.9.0, 3.0.0-alpha4
    • Component/s: fs/azure
    • Labels:
      None
    • Target Version/s:
    • Hadoop Flags:
      Reviewed
    • Release Note:
      Fix to wasb:// (Azure) file system that allows the concurrent I/O feature to be used with the secure mode feature.
    • Flags:
      Patch

      Description

      This change allows the concurrent I/O feature (fs.azure.io.read.tolerate.concurrent.append = true) to work when secure mode is enabled (fs.azure.secure.mode = true).

      While running the test TestAzureConcurrentOutOfBandIo.testReadOOBWrites, I discovered that it fails when fs.azure.secure.mode = true with the error below:

      com.microsoft.azure.storage.StorageException: The condition specified using HTTP conditional header(s) is not met.
      at com.microsoft.azure.storage.core.Utility.initIOException(Utility.java:733)
      at com.microsoft.azure.storage.blob.BlobInputStream.dispatchRead(BlobInputStream.java:264)
      at com.microsoft.azure.storage.blob.BlobInputStream.readInternal(BlobInputStream.java:448)
      at com.microsoft.azure.storage.blob.BlobInputStream.read(BlobInputStream.java:420)
      at java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
      at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
      at java.io.DataInputStream.read(DataInputStream.java:149)
      at org.apache.hadoop.fs.azure.TestAzureConcurrentOutOfBandIo.testReadOOBWrites(TestAzureConcurrentOutOfBandIo.java:167)

      There were a couple problems causing this failure:

      1) AzureNativeFileSystemStore.connectToAzureStorageInSecureMode was disabling concurrent I/O by setting fs.azure.io.read.tolerate.concurrent.append to false.

      2) SendRequestIntercept was unnecessarily updating the SAS for the request. Since this intercept only sets the request header "If-Match: *" to override the existing recondition, it is not necessary to update the SAS.

      The above issues have been fixed and a new test case has been added so that testReadOOBWrites now runs both with and without secure mode enabled.

        Attachments

        1. HADOOP-14546.003.patch
          13 kB
          Thomas Marquardt
        2. HADOOP-14546.002.patch
          14 kB
          Thomas Marquardt
        3. HADOOP-14546.001.patch
          14 kB
          Thomas Marquardt

          Activity

            People

            • Assignee:
              tmarquardt Thomas Marquardt
              Reporter:
              tmarquardt Thomas Marquardt
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: