Skip to content

Commit f6a9a57

Browse files
Punya Biswalsrowen
authored andcommitted
[SPARK-6952] Handle long args when detecting PID reuse
sbin/spark-daemon.sh used ps -p "$TARGET_PID" -o args= to figure out whether the process running with the expected PID is actually a Spark daemon. When running with a large classpath, the output of ps gets truncated and the check fails spuriously. This weakens the check to see if it's a java command (which is something we do in other parts of the script) rather than looking for the specific main class name. This means that SPARK-4832 might happen under a slightly broader range of circumstances (a java program happened to reuse the same PID), but it seems worthwhile compared to failing consistently with a large classpath. Author: Punya Biswal <pbiswal@palantir.com> Closes #5535 from punya/feature/SPARK-6952 and squashes the following commits: 7ea12d1 [Punya Biswal] Handle long args when detecting PID reuse
1 parent 4527761 commit f6a9a57

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

sbin/spark-daemon.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ run_command() {
129129

130130
if [ -f "$pid" ]; then
131131
TARGET_ID="$(cat "$pid")"
132-
if [[ $(ps -p "$TARGET_ID" -o args=) =~ $command ]]; then
132+
if [[ $(ps -p "$TARGET_ID" -o comm=) =~ "java" ]]; then
133133
echo "$command running as process $TARGET_ID. Stop it first."
134134
exit 1
135135
fi
@@ -163,7 +163,7 @@ run_command() {
163163
echo "$newpid" > "$pid"
164164
sleep 2
165165
# Check if the process has died; in that case we'll tail the log so the user can see
166-
if [[ ! $(ps -p "$newpid" -o args=) =~ $command ]]; then
166+
if [[ ! $(ps -p "$newpid" -o comm=) =~ "java" ]]; then
167167
echo "failed to launch $command:"
168168
tail -2 "$log" | sed 's/^/ /'
169169
echo "full log in $log"

0 commit comments

Comments
 (0)