When running Java on a server with a lot of memory but a rather small virtual memory ulimit, Java will try to allocate a large memory pool and fail:
This is a known issue with Java, but unlikely to get fixed.
As a result, when starting various Spark process (spark-submit, master or workers), they fail when spark-class tries to run org.apache.spark.launcher.Main.
To fix this, add -Xmx128m to this line
We've been using 128m and that works in our setup. Considering all the launcher does is analyze the arguments and env var and spit out some command, it should be plenty. All other calls to Java seem to include some value for -Xmx, so it is not an issue elsewhere.
I don't mind submitting a PR, but I'm sure somebody has opinions on the 128m (bigger, smaller, configurable, ...), so I'd rather it would be discussed first.