Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-10173

ThreadLocal synchronized initialvalue() is irrelevant in JDK7

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.2.0
    • 2.0.0
    • Query Processor
    • None

    Description

      The threadlocals need not synchronize the calls to initialvalue(), since that is effectively going to be called once per-thread in JDK7.

      The anti-pattern lives on due to a very old JDK bug - https://bugs.openjdk.java.net/browse/JDK-6550283

      $ git grep --name-only -c "protected.*synchronized.*initialValue"
      common/src/java/org/apache/hadoop/hive/conf/LoopingByteArrayInputStream.java
      contrib/src/java/org/apache/hadoop/hive/contrib/util/typedbytes/TypedBytesInput.java
      contrib/src/java/org/apache/hadoop/hive/contrib/util/typedbytes/TypedBytesOutput.java
      contrib/src/java/org/apache/hadoop/hive/contrib/util/typedbytes/TypedBytesRecordInput.java
      contrib/src/java/org/apache/hadoop/hive/contrib/util/typedbytes/TypedBytesRecordOutput.java
      contrib/src/java/org/apache/hadoop/hive/contrib/util/typedbytes/TypedBytesWritableInput.java
      contrib/src/java/org/apache/hadoop/hive/contrib/util/typedbytes/TypedBytesWritableOutput.java
      metastore/src/java/org/apache/hadoop/hive/metastore/Deadline.java
      metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
      ql/src/java/org/apache/hadoop/hive/ql/exec/TaskFactory.java
      ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java
      ql/src/java/org/apache/hadoop/hive/ql/io/IOContext.java
      ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
      ql/src/java/org/apache/hadoop/hive/ql/session/OperationLog.java
      serde/src/java/org/apache/hadoop/hive/serde2/io/TimestampWritable.java
      serde/src/test/org/apache/hadoop/hive/serde2/io/TestTimestampWritable.java
      service/src/java/org/apache/hive/service/auth/TSetIpAddressProcessor.java
      service/src/java/org/apache/hive/service/cli/session/SessionManager.java
      shims/common/src/main/java/org/apache/hadoop/hive/thrift/HadoopThriftAuthBridge.java
      

      Attachments

        1. HIVE-10173.patch
          16 kB
          Ferdinand Xu

        Activity

          People

            Ferd Ferdinand Xu
            gopalv Gopal Vijayaraghavan
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: