-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Docker: Collect JVM heap dump in case server run into error #2546
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
CI Failure Feedback 🧐(Checks updated until commit 54943fb)
✨ CI feedback usage guide:The CI feedback tool (
In addition to being automatically triggered, the tool can also be invoked manually by commenting on a PR: where Configuration options
See more information about the |
Signed-off-by: Viet Nguyen Duc <[email protected]>
User description
Thanks for contributing to the Docker-Selenium project!
A PR well described will help maintainers to quickly review and merge it
Before submitting your PR, please check our contributing guidelines, applied for this repository.
Avoid large PRs, help reviewers by making them as simple and short as possible.
Description
Support #2528
SE_JAVA_OPTS_DEFAULT=-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logsappend to command start the server. Heap dump is created in/opt/selenium/logsdirectory in case the server run into OOM.SE_JAVA_HEAP_DUMP=true. Once Pod/container is terminated or restarted, the heap dump will be created in /opt/selenium/logs. In deployment.Noted: this needs to set volumes/PVC mount
/opt/selenium/logsin container to persist the data file.This pull request introduces several improvements to the Selenium Grid setup, including enhancements to the Dockerfile, new environment variables, and heap dump handling across various components. The changes also include updates to Helm charts for better configuration management.
Dockerfile and Environment Variables:
openjdk-${JRE_VERSION}-jre-headlesstoopenjdk-${JRE_VERSION}-jdk-headlessto include JDK instead of JRE (Base/Dockerfile).Base/Dockerfile) [1] [2].SE_JAVA_OPTS_DEFAULTandSE_JAVA_HEAP_DUMPto manage Java options and heap dump settings (Base/Dockerfile).Heap Dump Handling:
handle_heap_dump.shscript to manage heap dumps (Base/handle_heap_dump.sh).Distributor/start-selenium-grid-distributor.sh,EventBus/start-selenium-grid-eventbus.sh,Hub/start-selenium-grid-hub.sh,NodeBase/start-selenium-node.sh,NodeDocker/start-selenium-grid-docker.sh,Router/start-selenium-grid-router.sh,SessionQueue/start-selenium-grid-session-queue.sh,Sessions/start-selenium-grid-sessions.sh,Standalone/start-selenium-standalone.sh,StandaloneDocker/start-selenium-grid-docker.sh) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17].Helm Charts:
charts/selenium-grid/CONFIGURATION.md,charts/selenium-grid/values.yaml) [1] [2] [3] [4].tests/charts/ci/DeploymentAutoscaling-values.yaml) [1] [2] [3].Motivation and Context
Types of changes
Checklist
PR Type
Enhancement
Description
Added JVM heap dump collection functionality
Created heap dump handler script
Added process management with PID tracking
Added volume mounts for logs in Helm charts
Changes walkthrough 📝
11 files
New script to handle JVM heap dump collectionAdd heap dump handling and process managementAdd heap dump handling and process managementAdd heap dump handling and process managementAdd heap dump handling and process managementAdd heap dump handling and process managementAdd heap dump handling and process managementAdd heap dump handling and process managementAdd heap dump handling and process managementAdd heap dump handling and process managementAdd heap dump handling and process management1 files
Add JDK and heap dump configuration7 files