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

Kapil Singh updated SPARK-44458:
--------------------------------
    Description: 
Currently setting the Spark configuration using the statement 
`spark.conf.set("spark.sql.caseSensitive", "true")` and subsequently executing 
a Spark action in a separate thread. An intermittent observation reveals that 
occasionally the configuration set in the main thread fails to propagate to the 
child thread

Steps to repro: [Spark SQL configs can't get propagated properly to a new 
thread in Spark 3.1 issue · 
GitHub|https://gist.github.com/t-rufang/25341b3678e5d7c74e3a209457fce0e9]

 

This is limitation due to ThreadLocal not being copied to child thread when 
child thread is reused from pool and only done instead in thread creation or 
when idle thread has expired KeepAlive in Executor

Refer:  

[https://users.scala-lang.org/t/future-executioncontext-and-threadlocal/7675/2] 

[https://www.stevenskelton.ca/threadlocal-variables-scala-futures/] 

  was:
Currently setting the Spark configuration using the statement 
`spark.conf.set("spark.sql.caseSensitive", "true")` and subsequently executing 
a Spark action in a separate thread. An intermittent observation reveals that 
occasionally the configuration set in the main thread fails to propagate to the 
child thread.

!image-2023-07-17-16-56-59-388.png!

 

!image-2023-07-17-16-57-09-669.png!

This is limitation due to ThreadLocal not being copied to child thread when 
child thread is reused from pool and only done instead in thread creation or 
when idle thread has expired KeepAlive in Executor

Refer:  

[https://users.scala-lang.org/t/future-executioncontext-and-threadlocal/7675/2] 

[https://www.stevenskelton.ca/threadlocal-variables-scala-futures/] 


> ThreadLocal not being copied to child thread when child thread is reused from 
> pool 
> -----------------------------------------------------------------------------------
>
>                 Key: SPARK-44458
>                 URL: https://issues.apache.org/jira/browse/SPARK-44458
>             Project: Spark
>          Issue Type: Bug
>          Components: Spark Core
>    Affects Versions: 3.4.1
>            Reporter: Kapil Singh
>            Priority: Major
>         Attachments: image-2023-07-17-16-56-59-388.png, 
> image-2023-07-17-16-57-09-669.png
>
>
> Currently setting the Spark configuration using the statement 
> `spark.conf.set("spark.sql.caseSensitive", "true")` and subsequently 
> executing a Spark action in a separate thread. An intermittent observation 
> reveals that occasionally the configuration set in the main thread fails to 
> propagate to the child thread
> Steps to repro: [Spark SQL configs can't get propagated properly to a new 
> thread in Spark 3.1 issue · 
> GitHub|https://gist.github.com/t-rufang/25341b3678e5d7c74e3a209457fce0e9]
>  
> This is limitation due to ThreadLocal not being copied to child thread when 
> child thread is reused from pool and only done instead in thread creation or 
> when idle thread has expired KeepAlive in Executor
> Refer:  
> [https://users.scala-lang.org/t/future-executioncontext-and-threadlocal/7675/2]
>  
> [https://www.stevenskelton.ca/threadlocal-variables-scala-futures/] 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to