Repository: flink
Updated Branches:
  refs/heads/release-1.2 58d09d565 -> 4a1aa4ce8


[FLINK-6300] Use 'exec' in start-foreground calls

To avoid signal-handling issues in Docker, applications need to run as
a single executable or use a process manager that forwards signals
correctly, in either case running as PID 1.

Since Flink uses a number of chained scripts before the ultimate call
to `java`, we need to use `exec` so that the script executable is
replaced, ultimately resulting in a single `java` process as PID 1.

There's no need to run a process manager since Flink only actually
requires a single process.

This closes #3734


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/4a1aa4ce
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/4a1aa4ce
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/4a1aa4ce

Branch: refs/heads/release-1.2
Commit: 4a1aa4ce80fd886266ee7ba76caf27feba3c0f43
Parents: 58d09d5
Author: Patrick Lucas <[email protected]>
Authored: Tue Apr 18 14:48:49 2017 +0200
Committer: Greg Hogan <[email protected]>
Committed: Tue Apr 18 10:47:20 2017 -0400

----------------------------------------------------------------------
 flink-dist/src/main/flink-bin/bin/flink-console.sh | 2 +-
 flink-dist/src/main/flink-bin/bin/jobmanager.sh    | 2 +-
 flink-dist/src/main/flink-bin/bin/taskmanager.sh   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/4a1aa4ce/flink-dist/src/main/flink-bin/bin/flink-console.sh
----------------------------------------------------------------------
diff --git a/flink-dist/src/main/flink-bin/bin/flink-console.sh 
b/flink-dist/src/main/flink-bin/bin/flink-console.sh
index 71c5c35..e60b101 100644
--- a/flink-dist/src/main/flink-bin/bin/flink-console.sh
+++ b/flink-dist/src/main/flink-bin/bin/flink-console.sh
@@ -62,4 +62,4 @@ if [[ ${JAVA_VERSION} =~ ${IS_NUMBER} ]]; then
 fi
 
 echo "Starting $SERVICE as a console application on host $HOSTNAME."
-$JAVA_RUN $JVM_ARGS ${FLINK_ENV_JAVA_OPTS} "${log_setting[@]}" -classpath 
"`manglePathList "$FLINK_TM_CLASSPATH:$INTERNAL_HADOOP_CLASSPATHS"`" 
${CLASS_TO_RUN} "${ARGS[@]}"
+exec $JAVA_RUN $JVM_ARGS ${FLINK_ENV_JAVA_OPTS} "${log_setting[@]}" -classpath 
"`manglePathList "$FLINK_TM_CLASSPATH:$INTERNAL_HADOOP_CLASSPATHS"`" 
${CLASS_TO_RUN} "${ARGS[@]}"

http://git-wip-us.apache.org/repos/asf/flink/blob/4a1aa4ce/flink-dist/src/main/flink-bin/bin/jobmanager.sh
----------------------------------------------------------------------
diff --git a/flink-dist/src/main/flink-bin/bin/jobmanager.sh 
b/flink-dist/src/main/flink-bin/bin/jobmanager.sh
index 98b6195..831fca4 100755
--- a/flink-dist/src/main/flink-bin/bin/jobmanager.sh
+++ b/flink-dist/src/main/flink-bin/bin/jobmanager.sh
@@ -71,7 +71,7 @@ if [[ $STARTSTOP == "start" ]] || [[ $STARTSTOP == 
"start-foreground" ]]; then
 fi
 
 if [[ $STARTSTOP == "start-foreground" ]]; then
-    "${FLINK_BIN_DIR}"/flink-console.sh jobmanager "${args[@]}"
+    exec "${FLINK_BIN_DIR}"/flink-console.sh jobmanager "${args[@]}"
 else
     "${FLINK_BIN_DIR}"/flink-daemon.sh $STARTSTOP jobmanager "${args[@]}"
 fi

http://git-wip-us.apache.org/repos/asf/flink/blob/4a1aa4ce/flink-dist/src/main/flink-bin/bin/taskmanager.sh
----------------------------------------------------------------------
diff --git a/flink-dist/src/main/flink-bin/bin/taskmanager.sh 
b/flink-dist/src/main/flink-bin/bin/taskmanager.sh
index 1319d24..ef8c8f6 100755
--- a/flink-dist/src/main/flink-bin/bin/taskmanager.sh
+++ b/flink-dist/src/main/flink-bin/bin/taskmanager.sh
@@ -97,7 +97,7 @@ if [[ $STARTSTOP == "start" ]] || [[ $STARTSTOP == 
"start-foreground" ]]; then
 fi
 
 if [[ $STARTSTOP == "start-foreground" ]]; then
-    "${FLINK_BIN_DIR}"/flink-console.sh taskmanager "${args[@]}"
+    exec "${FLINK_BIN_DIR}"/flink-console.sh taskmanager "${args[@]}"
 else
     "${FLINK_BIN_DIR}"/flink-daemon.sh $STARTSTOP taskmanager "${args[@]}"
 fi

Reply via email to