> On Feb. 27, 2014, 11:08 p.m., Thejas Nair wrote: > > ql/src/java/org/apache/hadoop/hive/ql/DriverContext.java, line 110 > > <https://reviews.apache.org/r/15873/diff/3/?file=478815#file478815line110> > > > > When pollFinished is running, this shutdown() function will not be able > > to make progress. Which means that the query cancellation will happen only > > after a task (could be an MR task) is complete. > > > > It seems synchronizing around shutdown should be sufficient, either by > > making it volatile or having synchronized methods around it. > > > > Since thread safe concurrent collection classes are being used here, I > > don't see other concurrency issues that would make it necessary to make all > > these functions synchronized. > > > > > > > > Navis Ryu wrote: > It just only polls status of running tasks and goes into wait state quite > quickly, so it would not hinder shutdown process. Furthermore, two threads, > polling and shutdown, has a race condition on both collections, runnable and > running, so those should be guarded by shared something. > > Thejas Nair wrote: > Yes, it will go into the wait state quickly. But I haven't understood how > the wait helps here. There is no notify in this code, so the wait will always > wait for 2 seconds. It will be no different from a sleep(2000) . > So it looks like the polling outside loop will continue until all the > currently running jobs are complete. > > > Navis Ryu wrote: > In javadoc, Object.wait() > > The current thread must own this object's monitor. The thread > releases ownership of this monitor and waits until another thread > notifies threads waiting on this object's monitor > > In wait state, any other thread can take the monitor (in sleep, it's not > possible). So shutdown thread does not need to wait for 2 seconds. Polling > thread might notice 2 seconds after shutdown as you said because it's not > notified. But I think it's not a big deal. Isn't it?
Thanks for the explanation! - Thejas ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/15873/#review35625 ----------------------------------------------------------- On March 4, 2014, 8:02 a.m., Navis Ryu wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/15873/ > ----------------------------------------------------------- > > (Updated March 4, 2014, 8:02 a.m.) > > > Review request for hive. > > > Bugs: HIVE-5901 > https://issues.apache.org/jira/browse/HIVE-5901 > > > Repository: hive-git > > > Description > ------- > > Currently, query canceling does not stop running MR job immediately. > > > Diffs > ----- > > ql/src/java/org/apache/hadoop/hive/ql/Driver.java 332cadb > ql/src/java/org/apache/hadoop/hive/ql/DriverContext.java c51a9c8 > ql/src/java/org/apache/hadoop/hive/ql/exec/ConditionalTask.java 854cd52 > ql/src/java/org/apache/hadoop/hive/ql/exec/TaskRunner.java ead7b59 > > Diff: https://reviews.apache.org/r/15873/diff/ > > > Testing > ------- > > > Thanks, > > Navis Ryu > >