From b6443189363d5ac3ecfae8edc830e8e6cbf3b1cf Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Fri, 21 Feb 2025 01:38:59 +0700 Subject: [PATCH] Docker: Collect JVM heap dump only enable via env var Signed-off-by: Viet Nguyen Duc --- Base/handle_heap_dump.sh | 26 ++++++++++--------- .../start-selenium-grid-distributor.sh | 10 ++----- EventBus/start-selenium-grid-eventbus.sh | 10 ++----- Hub/start-selenium-grid-hub.sh | 10 ++----- NodeBase/start-selenium-node.sh | 10 ++----- NodeDocker/start-selenium-grid-docker.sh | 10 ++----- Router/start-selenium-grid-router.sh | 10 ++----- .../start-selenium-grid-session-queue.sh | 10 ++----- Sessions/start-selenium-grid-sessions.sh | 10 ++----- Standalone/start-selenium-standalone.sh | 10 ++----- .../start-selenium-grid-docker.sh | 10 ++----- 11 files changed, 34 insertions(+), 92 deletions(-) diff --git a/Base/handle_heap_dump.sh b/Base/handle_heap_dump.sh index cc7b922cd4..6d0ca05b81 100644 --- a/Base/handle_heap_dump.sh +++ b/Base/handle_heap_dump.sh @@ -1,19 +1,21 @@ #!/usr/bin/env bash -SELENIUM_SERVER_PID=$1 -LOG_DIR=$2 +SELENIUM_SERVER_PID="$(ps -ef | grep "selenium-server.jar" | grep -v grep | awk '{print $2}')" +LOG_DIR=$1 TIMESTAMP=$(date +%s) -filename="$LOG_DIR/dump_pid${SELENIUM_SERVER_PID}_${TIMESTAMP}.hprof" -if ps -p "${SELENIUM_SERVER_PID}" >/dev/null; then - echo "Server process is still running. Create heap dump by using jmap" - jmap -dump:live,format=b,file="${filename}" "${SELENIUM_SERVER_PID}" -else - filename_source="$LOG_DIR/java_pid${SELENIUM_SERVER_PID}.hprof" - if [ -f "$filename_source" ]; then - echo "Server is not running. Check HeapDumpOnOutOfMemoryError created" - mv "$filename_source" "$filename" +if [ -n "${SELENIUM_SERVER_PID}" ]; then + filename="$LOG_DIR/dump_pid${SELENIUM_SERVER_PID}_${TIMESTAMP}.hprof" + if ps -p "${SELENIUM_SERVER_PID}" >/dev/null; then + echo "Server process is still running. Create heap dump by using jmap" + jmap -dump:live,format=b,file="${filename}" "${SELENIUM_SERVER_PID}" else - echo "Server is not running. No heap dump is created" + filename_source="$LOG_DIR/java_pid${SELENIUM_SERVER_PID}.hprof" + if [ -f "$filename_source" ]; then + echo "Server is not running. Check HeapDumpOnOutOfMemoryError created" + mv "$filename_source" "$filename" + else + echo "Server is not running. No heap dump is created" + fi fi fi diff --git a/Distributor/start-selenium-grid-distributor.sh b/Distributor/start-selenium-grid-distributor.sh index cc129f0a16..0519a6434e 100755 --- a/Distributor/start-selenium-grid-distributor.sh +++ b/Distributor/start-selenium-grid-distributor.sh @@ -191,12 +191,10 @@ if [ -n "${JAVA_OPTS:-$SE_JAVA_OPTS}" ]; then fi function handle_heap_dump() { - /opt/bin/handle_heap_dump.sh $SELENIUM_SERVER_PID /opt/selenium/logs + /opt/bin/handle_heap_dump.sh /opt/selenium/logs } if [ "${SE_JAVA_HEAP_DUMP}" = "true" ]; then trap handle_heap_dump ERR SIGTERM SIGINT -else - trap handle_heap_dump ERR fi java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ @@ -204,8 +202,4 @@ java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ ${EXTRA_LIBS} \ distributor \ --bind-bus false \ - ${SE_OPTS} & - -SELENIUM_SERVER_PID=$! - -wait $SELENIUM_SERVER_PID + ${SE_OPTS} diff --git a/EventBus/start-selenium-grid-eventbus.sh b/EventBus/start-selenium-grid-eventbus.sh index ecf7703e93..94c0e69941 100755 --- a/EventBus/start-selenium-grid-eventbus.sh +++ b/EventBus/start-selenium-grid-eventbus.sh @@ -121,12 +121,10 @@ if [ -n "${JAVA_OPTS:-$SE_JAVA_OPTS}" ]; then fi function handle_heap_dump() { - /opt/bin/handle_heap_dump.sh $SELENIUM_SERVER_PID /opt/selenium/logs + /opt/bin/handle_heap_dump.sh /opt/selenium/logs } if [ "${SE_JAVA_HEAP_DUMP}" = "true" ]; then trap handle_heap_dump ERR SIGTERM SIGINT -else - trap handle_heap_dump ERR fi java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ @@ -135,8 +133,4 @@ java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ --bind-host ${SE_BIND_HOST} \ ${HOST_CONFIG} \ ${PORT_CONFIG} \ - ${SE_OPTS} & - -SELENIUM_SERVER_PID=$! - -wait $SELENIUM_SERVER_PID + ${SE_OPTS} diff --git a/Hub/start-selenium-grid-hub.sh b/Hub/start-selenium-grid-hub.sh index 5d0f5fde3c..39215e11df 100755 --- a/Hub/start-selenium-grid-hub.sh +++ b/Hub/start-selenium-grid-hub.sh @@ -171,20 +171,14 @@ if [ -n "${JAVA_OPTS:-$SE_JAVA_OPTS}" ]; then fi function handle_heap_dump() { - /opt/bin/handle_heap_dump.sh $SELENIUM_SERVER_PID /opt/selenium/logs + /opt/bin/handle_heap_dump.sh /opt/selenium/logs } if [ "${SE_JAVA_HEAP_DUMP}" = "true" ]; then trap handle_heap_dump ERR SIGTERM SIGINT -else - trap handle_heap_dump ERR fi java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ -jar /opt/selenium/selenium-server.jar \ ${EXTRA_LIBS} \ hub \ - ${SE_OPTS} & - -SELENIUM_SERVER_PID=$! - -wait $SELENIUM_SERVER_PID + ${SE_OPTS} diff --git a/NodeBase/start-selenium-node.sh b/NodeBase/start-selenium-node.sh index db39862625..4fc4334abb 100755 --- a/NodeBase/start-selenium-node.sh +++ b/NodeBase/start-selenium-node.sh @@ -186,12 +186,10 @@ if [ -n "${JAVA_OPTS:-$SE_JAVA_OPTS}" ]; then fi function handle_heap_dump() { - /opt/bin/handle_heap_dump.sh $SELENIUM_SERVER_PID /opt/selenium/logs + /opt/bin/handle_heap_dump.sh /opt/selenium/logs } if [ "${SE_JAVA_HEAP_DUMP}" = "true" ]; then trap handle_heap_dump ERR SIGTERM SIGINT -else - trap handle_heap_dump ERR fi java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ @@ -201,8 +199,4 @@ java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ -jar /opt/selenium/selenium-server.jar \ ${EXTRA_LIBS} \ node \ - ${SE_OPTS} & - -SELENIUM_SERVER_PID=$! - -wait $SELENIUM_SERVER_PID + ${SE_OPTS} diff --git a/NodeDocker/start-selenium-grid-docker.sh b/NodeDocker/start-selenium-grid-docker.sh index c54c7fcb4c..4e037bff93 100755 --- a/NodeDocker/start-selenium-grid-docker.sh +++ b/NodeDocker/start-selenium-grid-docker.sh @@ -138,12 +138,10 @@ if [ -n "${JAVA_OPTS:-$SE_JAVA_OPTS}" ]; then fi function handle_heap_dump() { - /opt/bin/handle_heap_dump.sh $SELENIUM_SERVER_PID /opt/selenium/logs + /opt/bin/handle_heap_dump.sh /opt/selenium/logs } if [ "${SE_JAVA_HEAP_DUMP}" = "true" ]; then trap handle_heap_dump ERR SIGTERM SIGINT -else - trap handle_heap_dump ERR fi java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ @@ -154,8 +152,4 @@ java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ --bind-host ${SE_BIND_HOST} \ --detect-drivers false \ --config ${CONFIG_FILE} \ - ${SE_GRID_URL} ${SE_OPTS} & - -SELENIUM_SERVER_PID=$! - -wait $SELENIUM_SERVER_PID + ${SE_GRID_URL} ${SE_OPTS} diff --git a/Router/start-selenium-grid-router.sh b/Router/start-selenium-grid-router.sh index 14e90b37cb..2ae5875939 100755 --- a/Router/start-selenium-grid-router.sh +++ b/Router/start-selenium-grid-router.sh @@ -172,12 +172,10 @@ if [ -n "${JAVA_OPTS:-$SE_JAVA_OPTS}" ]; then fi function handle_heap_dump() { - /opt/bin/handle_heap_dump.sh $SELENIUM_SERVER_PID /opt/selenium/logs + /opt/bin/handle_heap_dump.sh /opt/selenium/logs } if [ "${SE_JAVA_HEAP_DUMP}" = "true" ]; then trap handle_heap_dump ERR SIGTERM SIGINT -else - trap handle_heap_dump ERR fi java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ @@ -193,8 +191,4 @@ java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ ${HOST_CONFIG} \ ${PORT_CONFIG} \ ${SUB_PATH_CONFIG} \ - ${SE_OPTS} & - -SELENIUM_SERVER_PID=$! - -wait $SELENIUM_SERVER_PID + ${SE_OPTS} diff --git a/SessionQueue/start-selenium-grid-session-queue.sh b/SessionQueue/start-selenium-grid-session-queue.sh index 54e2e65e33..e6f67afc36 100755 --- a/SessionQueue/start-selenium-grid-session-queue.sh +++ b/SessionQueue/start-selenium-grid-session-queue.sh @@ -125,12 +125,10 @@ if [ -n "${JAVA_OPTS:-$SE_JAVA_OPTS}" ]; then fi function handle_heap_dump() { - /opt/bin/handle_heap_dump.sh $SELENIUM_SERVER_PID /opt/selenium/logs + /opt/bin/handle_heap_dump.sh /opt/selenium/logs } if [ "${SE_JAVA_HEAP_DUMP}" = "true" ]; then trap handle_heap_dump ERR SIGTERM SIGINT -else - trap handle_heap_dump ERR fi java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ @@ -141,8 +139,4 @@ java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ --bind-host ${SE_BIND_HOST} \ ${HOST_CONFIG} \ ${PORT_CONFIG} \ - ${SE_OPTS} & - -SELENIUM_SERVER_PID=$! - -wait $SELENIUM_SERVER_PID + ${SE_OPTS} diff --git a/Sessions/start-selenium-grid-sessions.sh b/Sessions/start-selenium-grid-sessions.sh index df16d10658..b8288df69b 100755 --- a/Sessions/start-selenium-grid-sessions.sh +++ b/Sessions/start-selenium-grid-sessions.sh @@ -160,12 +160,10 @@ if [ -n "${JAVA_OPTS:-$SE_JAVA_OPTS}" ]; then fi function handle_heap_dump() { - /opt/bin/handle_heap_dump.sh $SELENIUM_SERVER_PID /opt/selenium/logs + /opt/bin/handle_heap_dump.sh /opt/selenium/logs } if [ "${SE_JAVA_HEAP_DUMP}" = "true" ]; then trap handle_heap_dump ERR SIGTERM SIGINT -else - trap handle_heap_dump ERR fi java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ @@ -176,8 +174,4 @@ java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ --bind-host ${SE_BIND_HOST} \ ${HOST_CONFIG} \ ${PORT_CONFIG} \ - ${SE_OPTS} & - -SELENIUM_SERVER_PID=$! - -wait $SELENIUM_SERVER_PID + ${SE_OPTS} diff --git a/Standalone/start-selenium-standalone.sh b/Standalone/start-selenium-standalone.sh index c0d5e8334d..6839ec8354 100755 --- a/Standalone/start-selenium-standalone.sh +++ b/Standalone/start-selenium-standalone.sh @@ -174,12 +174,10 @@ if [ -n "${JAVA_OPTS:-$SE_JAVA_OPTS}" ]; then fi function handle_heap_dump() { - /opt/bin/handle_heap_dump.sh $SELENIUM_SERVER_PID /opt/selenium/logs + /opt/bin/handle_heap_dump.sh /opt/selenium/logs } if [ "${SE_JAVA_HEAP_DUMP}" = "true" ]; then trap handle_heap_dump ERR SIGTERM SIGINT -else - trap handle_heap_dump ERR fi java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ @@ -196,8 +194,4 @@ java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ --bind-host ${SE_BIND_HOST} \ --config ${CONFIG_FILE} \ ${SUB_PATH_CONFIG} \ - ${SE_OPTS} & - -SELENIUM_SERVER_PID=$! - -wait $SELENIUM_SERVER_PID + ${SE_OPTS} diff --git a/StandaloneDocker/start-selenium-grid-docker.sh b/StandaloneDocker/start-selenium-grid-docker.sh index c1ba7a7ec8..f2c622d71e 100755 --- a/StandaloneDocker/start-selenium-grid-docker.sh +++ b/StandaloneDocker/start-selenium-grid-docker.sh @@ -139,12 +139,10 @@ if [ -n "${JAVA_OPTS:-$SE_JAVA_OPTS}" ]; then fi function handle_heap_dump() { - /opt/bin/handle_heap_dump.sh $SELENIUM_SERVER_PID /opt/selenium/logs + /opt/bin/handle_heap_dump.sh /opt/selenium/logs } if [ "${SE_JAVA_HEAP_DUMP}" = "true" ]; then trap handle_heap_dump ERR SIGTERM SIGINT -else - trap handle_heap_dump ERR fi java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ @@ -156,8 +154,4 @@ java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ --detect-drivers false \ --bind-host ${SE_BIND_HOST} \ --config ${CONFIG_FILE} \ - ${SE_GRID_URL} ${SE_OPTS} & - -SELENIUM_SERVER_PID=$! - -wait $SELENIUM_SERVER_PID + ${SE_GRID_URL} ${SE_OPTS}