Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-15270

Account for *env == NULL in hdfsThreadDestructor

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    Description

      OpenJ9 JVM properly terminates the thread before hdfsThreadDestructor is
      invoked. JNIEnv is a mirror of J9VMThread in OpenJ9. After proper thread
      termination, accessing JNIEnv in hdfsThreadDestructor (*env)->GetJavaVM,
      yields a SIGSEGV since *env is NULL after thread cleanup is performed.

      The main purpose of hdfsThreadDestructor is to invoke
      DetachCurrentThread, which performs thread cleanup in OpenJ9. Since
      OpenJ9 performs thread cleanup before hdfsThreadDestructor is invoked,
      hdfsThreadDestructor should account for *env == NULL and skip
      DetachCurrentThread.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            babsingh Babneet Singh
            babsingh Babneet Singh
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment