Vinod and I had a discussion as a result of Brenden's review:
https://reviews.apache.org/r/11814

The webui is broken for command executors because the master does not know
the executor ID for the tasks using a command executor. This is because the
Task protobuf only has the executor_id field, no other field to indicate
the presence of the command executor.

It seems the slave also doesn't set the Task.executor_id for command
executors, thus relying on it being optionally set in executorTerminated()
to determine whether the task used a command executor.

This all seems pretty messy, a few things to consider:

1) Should we simply always set the Task.executor_id for these tasks? The
master could do so currently, but there would be an implicit contract that
the slave and master both use the task id as the executor id.

2) We can add a boolean is_command_executor to Task, so that both the
master and slave can set the field, and the slave can use the boolean in
executorTerminated() to determine whether the task used a command executor.

3) Alternatively, we can add a /frameworks/FID/tasks/TID url format for the
broken links on the master webui, so that we can search for the task in the
slave state to locate its executor.

Reply via email to