def _start_driver_status_tracking(self):
<EOL>missed_job_status_reports = <NUM_LIT:0><EOL>max_missed_job_status_reports = <NUM_LIT:10><EOL>while self._driver_status not in ["<STR_LIT>", "<STR_LIT>",<EOL>"<STR_LIT>", "<STR_LIT>", "<STR_LIT>"]:<EOL><INDENT>time.sleep(<NUM_LIT:1>)<EOL>self.log.debug("<STR_LIT>"<EOL>.format(self._driver_id))<EOL>poll_drive_status_cmd = self._build_track_driver_status_command()<EOL>status_process = subprocess.Popen(poll_drive_status_cmd,<EOL>stdout=subprocess.PIPE,<EOL>stderr=subprocess.STDOUT,<EOL>bufsize=-<NUM_LIT:1>,<EOL>universal_newlines=True)<EOL>self._process_spark_status_log(iter(status_process.stdout.readline, '<STR_LIT>'))<EOL>returncode = status_process.wait()<EOL>if returncode:<EOL><INDENT>if missed_job_status_reports < max_missed_job_status_reports:<EOL><INDENT>missed_job_status_reports = missed_job_status_reports + <NUM_LIT:1><EOL><DEDENT>else:<EOL><INDENT>raise AirflowException(<EOL>"<STR_LIT>"<EOL>.format(max_missed_job_status_reports, returncode)<EOL>)<EOL><DEDENT><DEDENT><DEDENT>
Polls the driver based on self._driver_id to get the status.
Finish successfully when the status is FINISHED.
Finish failed when the status is ERROR/UNKNOWN/KILLED/FAILED.

Possible status:

SUBMITTED
    Submitted but not yet scheduled on a worker
RUNNING
    Has been allocated to a worker to run
FINISHED
    Previously ran and exited cleanly
RELAUNCHING
    Exited non-zero or due to worker failure, but has not yet
    started running again
UNKNOWN
    The status of the driver is temporarily not known due to
    master failure recovery
KILLED
    A user manually killed this driver
FAILED
    The driver exited non-zero and was not supervised
ERROR
    Unable to run or restart due to an unrecoverable error
    (e.g. missing jar file)