[
https://issues.apache.org/jira/browse/SPARK-16925?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Josh Rosen updated SPARK-16925:
-------------------------------
Description:
If you have a Spark standalone cluster which runs a single application and you
have a Spark task which repeatedly fails by causing the executor JVM to exit
with a _zero_ exit code then this may temporarily freeze / hang the Spark
application.
For example, running
{code}
sc.parallelize(1 to 1, 1).foreachPartition { _ => System.exit(0) }
{code}
on a cluster will cause all executors to die but those executors won't be
replaced unless another Spark application or worker joins or leaves the
cluster. This is caused by a bug in the standalone Master where {{schedule()}}
is only called on executor exit when the exit code is non-zero, whereas I think
that we should always call {{schedule()}} even on a "clean" executor shutdown
since {{schedule()}} should always be safe to call.
was:
If you have a Spark standalone cluster which runs a single application and you
have a Spark task which repeatedly fails by causing the executor JVM to exit
with a _zero_ exit code then this may temporarily freeze / hang the Spark
application.
For example, running
{code}
sc.parallelize(1 to 1, 1).foreachPartition { _ => System.exit(0) }
{code}
on a cluster will cause all executors to die but those executors won't be
replaced unless another Spark application or worker joins or leaves the
cluster. This is caused by a bug in the standalone Master where {{schedule()}}
is only called on executor exit when the exit code is non-zero, whereas I think
that we should always call {{schedule()}} even on a "clean" executor shutdown
since {{schedule()}} should be idempotent.
> Spark tasks which cause JVM to exit with a zero exit code may cause app to
> hang in Standalone mode
> --------------------------------------------------------------------------------------------------
>
> Key: SPARK-16925
> URL: https://issues.apache.org/jira/browse/SPARK-16925
> Project: Spark
> Issue Type: Bug
> Components: Deploy
> Affects Versions: 1.6.0, 2.0.0
> Reporter: Josh Rosen
> Assignee: Josh Rosen
> Priority: Critical
>
> If you have a Spark standalone cluster which runs a single application and
> you have a Spark task which repeatedly fails by causing the executor JVM to
> exit with a _zero_ exit code then this may temporarily freeze / hang the
> Spark application.
> For example, running
> {code}
> sc.parallelize(1 to 1, 1).foreachPartition { _ => System.exit(0) }
> {code}
> on a cluster will cause all executors to die but those executors won't be
> replaced unless another Spark application or worker joins or leaves the
> cluster. This is caused by a bug in the standalone Master where
> {{schedule()}} is only called on executor exit when the exit code is
> non-zero, whereas I think that we should always call {{schedule()}} even on a
> "clean" executor shutdown since {{schedule()}} should always be safe to call.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]