Currently once a watch fires that the task node has been updated (hearbeated) by the worker, the splitlogmanager still quite some time before it updates the "last heard from" time. This is because the manager currently schedules another getDataSetWatch() and only after that finishes will it update the task's "last heard from" time.
This leads to a large number of zk-BadVersion warnings when resubmission is continuously attempted and it fails.
Two changes should be made
(1) On a resubmission failure because of BadVersion the task's lastUpdate time should get upped.
(2) The task's lastUpdate time should get upped as soon as the nodeDataChanged() watch fires and without waiting for getDataSetWatch() to complete.