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

    https://github.com/apache/spark/pull/14231#discussion_r71063792
  
    --- Diff: bin/spark-class ---
    @@ -65,24 +65,25 @@ fi
     # characters that would be otherwise interpreted by the shell. Read that 
in a while loop, populating
     # an array that will be used to exec the final command.
     #
    -# The exit code of the launcher is appended to the output, so the parent 
shell removes it from the
    -# command array and checks the value to see if the launcher succeeded.
    -build_command() {
    -  "$RUNNER" -Xmx128m -cp "$LAUNCH_CLASSPATH" 
org.apache.spark.launcher.Main "$@"
    -  printf "%d\0" $?
    -}
    +# To keep both the output and the exit code of the launcher, the output is 
first converted to a hex
    +# dump which prevents the bash from getting rid of the NULL character, and 
the exit code retrieved
    +# from the bash array ${PIPESTATUS[@]}.
    +#
    +# Note that the seperator NULL character can not be replace with space or 
'\n' so that the command
    +# won't fail if some path of the user contain special characher such as 
'\n' or space
    +#
    +# Also note that when the launcher fails, it might not output something 
ending with '\0' [SPARK-16586]
    +_CMD=$("$RUNNER" -Xmx128m -cp "$LAUNCH_CLASSPATH" 
org.apache.spark.launcher.Main "$@"|xxd -p|tr -d '\n';exit ${PIPESTATUS[0]})
    --- End diff --
    
    Yes, you are right. I found this problem when I try to run spark for test 
on a login node of a HPC, which limit the amount of memory applications can 
use. This is not some big problem, so it's ok to mark this as "won't fix", but 
this might be confusing to users who don't understand shell scripts. Actually 
this patch is a small change and it reduce the total lines of codes (but I 
agree that this line is a little bit tricky and harder to understand). That's 
why I add some comments to explain what's happening.


---
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 infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to