You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Andrew Korzhuev (JIRA)" <ji...@apache.org> on 2018/02/16 14:54:00 UTC

[jira] [Updated] (SPARK-23449) Extra java options lose order in Docker context

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

Andrew Korzhuev updated SPARK-23449:
------------------------------------
    Description: 
`spark.driver.extraJavaOptions` and `spark.executor.extraJavaOptions` when processed in `entrypoint.sh` does not preserve its ordering, which makes `-XX:+UnlockExperimentalVMOptions` unusable, as you have to pass it before any other experimental options.

 

Steps to reproduce:
 # Set `spark.driver.extraJavaOptions`, e.g. `-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:+CMSClassUnloadingEnabled -XX:+UseCGroupMemoryLimitForHeap`
 # Submit application to k8s cluster.
 # Fetch logs and observe that on each run order of options is different and when `-XX:+UnlockExperimentalVMOptions` is not the first startup will fail.

 

Expected behaviour:
 # Order of `extraJavaOptions` should be preserved.

 

Cause:

`entrypoint.sh` fetches environment options with `env`, which doesn't guarantee ordering.
{code:java}
env | grep SPARK_JAVA_OPT_ | sed 's/[^=]*=\(.*\)/\1/g' > /tmp/java_opts.txt{code}

  was:
`spark.driver.extraJavaOptions` and `spark.executor.extraJavaOptions` when processed in `entrypoint.sh`, which makes `-XX:+UnlockExperimentalVMOptions` unusable, as you have to pass it before any other experimental options.

 

Steps to reproduce:
 # Set `spark.driver.extraJavaOptions`, e.g. `-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:+CMSClassUnloadingEnabled -XX:+UseCGroupMemoryLimitForHeap`
 # Submit application to k8s cluster.
 # Fetch logs and observe that on each run order of options is different and when `-XX:+UnlockExperimentalVMOptions` is not the first startup will fail.

 

Expected behaviour:
 # Order of `extraJavaOptions` should be preserved.

 

Cause:

`entrypoint.sh` fetches environment options with `env`, which doesn't guarantee ordering.
{code:java}
env | grep SPARK_JAVA_OPT_ | sed 's/[^=]*=\(.*\)/\1/g' > /tmp/java_opts.txt{code}


> Extra java options lose order in Docker context
> -----------------------------------------------
>
>                 Key: SPARK-23449
>                 URL: https://issues.apache.org/jira/browse/SPARK-23449
>             Project: Spark
>          Issue Type: Bug
>          Components: Kubernetes
>    Affects Versions: 2.3.0
>         Environment: Running Spark on K8S with supplied Docker image. Passing along extra java options.
>            Reporter: Andrew Korzhuev
>            Priority: Minor
>             Fix For: 2.3.0
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> `spark.driver.extraJavaOptions` and `spark.executor.extraJavaOptions` when processed in `entrypoint.sh` does not preserve its ordering, which makes `-XX:+UnlockExperimentalVMOptions` unusable, as you have to pass it before any other experimental options.
>  
> Steps to reproduce:
>  # Set `spark.driver.extraJavaOptions`, e.g. `-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:+CMSClassUnloadingEnabled -XX:+UseCGroupMemoryLimitForHeap`
>  # Submit application to k8s cluster.
>  # Fetch logs and observe that on each run order of options is different and when `-XX:+UnlockExperimentalVMOptions` is not the first startup will fail.
>  
> Expected behaviour:
>  # Order of `extraJavaOptions` should be preserved.
>  
> Cause:
> `entrypoint.sh` fetches environment options with `env`, which doesn't guarantee ordering.
> {code:java}
> env | grep SPARK_JAVA_OPT_ | sed 's/[^=]*=\(.*\)/\1/g' > /tmp/java_opts.txt{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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