Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-7149 IBM JDK specific issues
  3. HBASE-7145

ReusableStreamGzipCodec NPE upon reset with IBM JDK

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.94.0
    • 0.95.0
    • None
    • Reviewed

    Description

      This is the same issue as described in HADOOP-8419, repeat the issue description here:

      The ReusableStreamGzipCodec will NPE upon reset after finish when the native zlib codec is not loaded. When the native zlib is loaded the codec creates a CompressorOutputStream that doesn't have the problem, otherwise, the ReusableStreamGzipCodec uses GZIPOutputStream which is extended to provide the resetState method. Since IBM JDK 6 SR9 FP2 including the current JDK 6 SR10, GZIPOutputStream#finish will release the underlying deflater(calls the deflater's end method), which causes NPE upon reset. This seems to be an IBM JDK quirk as Sun JDK and OpenJDK doesn't have this issue.

      Since in HBASE-5387 HBase source has refactor its code not to use hadoop's GzipCodec during real compress/decompress, it's necessary to make a separate patch for HBase on the same issue

      Attachments

        1. 7145-trunk-v3.txt
          4 kB
          Ted Yu
        2. 7145-trunk-v4.txt
          6 kB
          Ted Yu
        3. 7145-trunk-v5.txt
          6 kB
          Ted Yu
        4. HBASE-7145.1.patch.txt
          3 kB
          Renata Ghisloti Duarte de Souza
        5. HBASE-7145.2_trunk.patch.txt
          3 kB
          Renata Ghisloti Duarte de Souza

        Issue Links

          Activity

            People

              rgduarte@br.ibm.com Renata Ghisloti Duarte de Souza
              liyu Yu Li
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: