You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "zhihai xu (JIRA)" <ji...@apache.org> on 2017/04/13 00:11:41 UTC

[jira] [Created] (HIVE-16433) Not nullify rj to avoid NPE due to race condition in ExecDriver.

zhihai xu created HIVE-16433:
--------------------------------

             Summary: Not nullify rj to avoid NPE due to race condition in ExecDriver.
                 Key: HIVE-16433
                 URL: https://issues.apache.org/jira/browse/HIVE-16433
             Project: Hive
          Issue Type: Bug
            Reporter: zhihai xu
            Assignee: zhihai xu
            Priority: Minor


Not nullify rj to avoid NPE due to race condition in ExecDriver. currently  {{rj}} is set to null in ExecDriver.shutdown which is called from other thread for query cancellation. It can happen at any time. There is a potential race condition,  the rj is still accessed after shutdown is called. For example: if the following is called right after ExecDriver.shutdown is called.
{code}
      this.jobID = rj.getJobID();
      updateStatusInQueryDisplay();
      returnVal = jobExecHelper.progress(rj, jc, ctx);
{code}
Currently the purpose of nullifying  rj is mainly to make sure {{rj.killJob()}} is only called once.
I will add a flag jobKilled to make sure {{rj.killJob()}} will be only called once.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)