[GOBBLIN-1068]Clean up cyclic logic in task cancellation
Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA
- https://issues.apache.org/jira/browse/GOBBLIN-1068
Description
- [ ] Here are some details about my PR, including screenshots (if applicable): This change is for improving fault-tolerance of Gobblin-on-YARN
The original cancel method in Task.java has several problems:
--Task is an implementation of Runable while itself contains a reference of Future<?> which is the handler of the Runnable after being submitted. The life-cycle of the Runnable shouldn't be controlled by itself as it looks like right now, but should be the TaskExecutor or something externally.
-- Because of the existence of a Future<?> object within Task, there's a bug in the implementation: The extension of Task, which is TaskIFaceWrapper doesn't have the constructor to initialize this variable, while one of the public method(completeShutdown within cancel) is exposing the accessing of this variable. This is a bug and the original fix in this PR:https://github.com/apache/incubator-gobblin/pull/2157/files is doing wrong thing to copy the base class's method and remove the calling of completeShutdown. In fact, the future object doesn't have to be existed in the first place.
-- Fixing some other typos, and unit test problems as well.
Tests
- [ ] My PR adds the following unit tests OR does not need testing for this extremely good reason:
Commits
- [ ] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":
- Subject is separated from body by a blank line
- Subject is limited to 50 characters
- Subject does not end with a period
- Subject uses the imperative mood ("add", not "adding")
- Body wraps at 72 characters
- Body explains "what" and "why", not "how"
@sv2000 Can you please take a look whenever you have time? Thanks.
@sv2000 Can you please take a look whenever you have time? Thanks.
Looks like there's a code-change-irrelevant travis failure happening which couldn't be reproduced locally. Will trigger another build after addressing comments if any.