Github user sarutak commented on a diff in the pull request:

    https://github.com/apache/spark/pull/3984#discussion_r22755829
  
    --- Diff: 
streaming/src/main/scala/org/apache/spark/streaming/receiver/ActorReceiver.scala
 ---
    @@ -149,43 +181,61 @@ private[streaming] class ActorReceiver[T: ClassTag](
       class Supervisor extends Actor {
     
         override val supervisorStrategy = receiverSupervisorStrategy
    -    val worker = context.actorOf(props, name)
    -    logInfo("Started receiver worker at:" + worker.path)
    -
    -    val n: AtomicInteger = new AtomicInteger(0)
    -    val hiccups: AtomicInteger = new AtomicInteger(0)
    -
    --- End diff --
    
    I think, it's not single-threaded. Multiple threads can access to 
Supervisor. Each thread couldn't access at a same time but it includes 
memory-visibility problem.
    Or, how about marking those vals as volatile?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

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

Reply via email to