[ https://issues.apache.org/jira/browse/SPARK-10563?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14746512#comment-14746512 ]
Andrew Or commented on SPARK-10563: ----------------------------------- NOTE: there's a subtle difference in behavior between branch-1.6 (master) and branch-1.5. In the latter, this fix only applies to cases where a SQLContext is created around the SparkContext. In raw Spark core / streaming for instance, we don't clone the properties. In master, however, we *always* clone the properties. > SparkContext's local properties should be cloned when inherited > --------------------------------------------------------------- > > Key: SPARK-10563 > URL: https://issues.apache.org/jira/browse/SPARK-10563 > Project: Spark > Issue Type: Bug > Components: Spark Core > Affects Versions: 1.0.0 > Reporter: Andrew Or > Assignee: Andrew Or > Fix For: 1.6.0, 1.5.1 > > > Currently, when a child thread inherits local properties from the parent > thread, it gets a reference of the parent's local properties and uses them as > default values. > The problem, however, is that when the parent changes the value of an > existing property, the changes are reflected in the child thread! This has > very confusing semantics, especially in streaming. > {code} > private val localProperties = new InheritableThreadLocal[Properties] { > override protected def childValue(parent: Properties): Properties = new > Properties(parent) > override protected def initialValue(): Properties = new Properties() > } > {code} > Instead, we should make a clone of the parent properties rather than passing > in a mutable reference. -- 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