[GOBBLIN-1995]Kill the writer thread when timeout happens to release the lock#3871
[GOBBLIN-1995]Kill the writer thread when timeout happens to release the lock#3871ZihanLi58 wants to merge 9 commits intoapache:masterfrom
Conversation
…x poll records during runtime
… unblock other trhead talking with HDFS
| } | ||
| finally { | ||
| if (future != null && !future.isDone()) { | ||
| future.cancel(true); |
There was a problem hiding this comment.
Does this have the intended effect? In the issues you were seeing, did we see threads that are sleeping / waiting on IO, which need to be interrupted via cancel?
I am asking this because if the thread needs to actively check if it's being requested to cancel (unless it's actively waiting / sleeping).
Read the below to see what I am describing
https://stackoverflow.com/questions/28043225/future-cancel-does-not-work
There was a problem hiding this comment.
@homatthew thanks for the information. The thread here is blocking on getting the HDFS mount table which is an IO operation. I also did a test to do a for loop to talk with HDFS and do timeout, and make sure cancel can work correctly in this case.
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
Description
Now when there is timeout happens talking with HDFS, we timeout and fail the job but the thread won't be killed in this case, and all other calls to HDFS will be blocked by this hanging thread.
Tests
Commits