[ 
https://issues.apache.org/jira/browse/SPARK-37089?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ankur Dave updated SPARK-37089:
-------------------------------
    Description: 
The task completion listener that closes the vectorized reader is registered 
lazily in {Parquet,Orc}FileFormat#buildReaderWithPartitionValues(). Since task 
completion listeners are executed in reverse order of registration, it always 
runs before the Python writer thread can be interrupted.

This contradicts the assumption in 
https://issues.apache.org/jira/browse/SPARK-37088 / 
https://github.com/apache/spark/pull/34245 that task completion listeners are 
registered bottom-up, preventing that fix from working properly.

  was:
The task completion listener that closes the vectorized reader is registered 
lazily in ParquetFileFormat#buildReaderWithPartitionValues(). Since task 
completion listeners are executed in reverse order of registration, it always 
runs before the Python writer thread can be interrupted.

This contradicts the assumption in 
https://issues.apache.org/jira/browse/SPARK-37088 / 
https://github.com/apache/spark/pull/34245 that task completion listeners are 
registered bottom-up, preventing that fix from working properly.


> ParquetFileFormat/OrcFileFormat register task completion listeners lazily, 
> causing Python writer thread to segfault when off-heap vectorized reader is 
> enabled
> --------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SPARK-37089
>                 URL: https://issues.apache.org/jira/browse/SPARK-37089
>             Project: Spark
>          Issue Type: Bug
>          Components: PySpark, SQL
>    Affects Versions: 3.0.3, 3.1.2, 3.2.0
>            Reporter: Ankur Dave
>            Assignee: Ankur Dave
>            Priority: Major
>
> The task completion listener that closes the vectorized reader is registered 
> lazily in {Parquet,Orc}FileFormat#buildReaderWithPartitionValues(). Since 
> task completion listeners are executed in reverse order of registration, it 
> always runs before the Python writer thread can be interrupted.
> This contradicts the assumption in 
> https://issues.apache.org/jira/browse/SPARK-37088 / 
> https://github.com/apache/spark/pull/34245 that task completion listeners are 
> registered bottom-up, preventing that fix from working properly.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to