Josh Rosen created SPARK-18928:
----------------------------------

             Summary: FileScanRDD, JDBCRDD, and UnsafeSorter should support 
task cancellation
                 Key: SPARK-18928
                 URL: https://issues.apache.org/jira/browse/SPARK-18928
             Project: Spark
          Issue Type: Bug
          Components: Spark Core, SQL
            Reporter: Josh Rosen
            Assignee: Josh Rosen


Spark tasks respond to cancellation by checking 
{{TaskContext.isInterrupted()}}, but this check is missing on a few critical 
paths used in Spark SQL, including FileScanRDD, JDBCRDD, and UnsafeSorter-based 
sorts. This can cause interrupted / cancelled tasks to continue running and 
become zombies.

Here's an example: first, create a giant text file. In my case, I just 
concatenated /usr/share/dict/words a bunch of times to produce a 2.75 gig file. 
Then, run a really slow query over that file and try to cancel it:

{code}
spark.read.text("/tmp/words").selectExpr("value + value + value").collect()
{code}

This will sit and churn at 100% CPU for a minute or two because the task isn't 
checking the interrupted flag.

The solution here is to add InterruptedIterator-style checks to a few locations 
where they're currently missing in Spark SQL.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to