-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Docker: Collect JVM heap dump in case server run into error #2546
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 <nguyenducviet4496@gmail.com>
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/logs
append to command start the server. Heap dump is created in/opt/selenium/logs
directory 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/logs
in 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-headless
toopenjdk-${JRE_VERSION}-jdk-headless
to include JDK instead of JRE (Base/Dockerfile
).Base/Dockerfile
) [1] [2].SE_JAVA_OPTS_DEFAULT
andSE_JAVA_HEAP_DUMP
to manage Java options and heap dump settings (Base/Dockerfile
).Heap Dump Handling:
handle_heap_dump.sh
script 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 collection
Add heap dump handling and process management
Add heap dump handling and process management
Add heap dump handling and process management
Add heap dump handling and process management
Add heap dump handling and process management
Add heap dump handling and process management
Add heap dump handling and process management
Add heap dump handling and process management
Add heap dump handling and process management
Add heap dump handling and process management
1 files
Add JDK and heap dump configuration
7 files