Github user zsxwing commented on the issue:
https://github.com/apache/spark/pull/17610
I removed the lock and changed `stopping` to `AtomicBoolean` to ensure
idempotent.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well.
Github user vanzin commented on the issue:
https://github.com/apache/spark/pull/17610
> An AtomicBoolean will introduce a new lock
I don't think it introduces a new lock, just an easy way to make `stop()`
idempotent.
I guess the question to ask is (and is basically
Github user mridulm commented on the issue:
https://github.com/apache/spark/pull/17610
bq. I don't get it. But I think the stack trace shows why this dead-lock
happens.
Based on your description/stacktrace, I get why the deadlock happens - what
I meant was, do any of the super.*
Github user AmplabJenkins commented on the issue:
https://github.com/apache/spark/pull/17610
Merged build finished. Test PASSed.
---
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
Github user AmplabJenkins commented on the issue:
https://github.com/apache/spark/pull/17610
Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/75712/
Test PASSed.
---
Github user SparkQA commented on the issue:
https://github.com/apache/spark/pull/17610
**[Test build #75712 has
finished](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/75712/testReport)**
for PR 17610 at commit
Github user zsxwing commented on the issue:
https://github.com/apache/spark/pull/17610
> Isn't it not depending on this being locked in super class methods
invoked in the invocation subtree ?
I don't get it. But I think the stack trace shows why this dead-lock
happens.
---
Github user zsxwing commented on the issue:
https://github.com/apache/spark/pull/17610
@mridulm yeah, I was thinking to just change `stopping` to a AtomicBoolean
flag. However, it changes the semantics a little, e.g., the second `stop` will
return at once when the first `stop` is
Github user mridulm commented on the issue:
https://github.com/apache/spark/pull/17610
Isn't it not depending on 'this' being locked in super class method ?
If it is not, then why not simply restrict lock to changing of `stopping`
flag (if already set, return, else set and proceed