SeleniumHQ / SeleniumHQ/docker-selenium

[🐛 Bug]: Videos are not always recorded due to video container not being aware of some sessions.

Open
#2,449 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
8.7k
Forks
2.5k
Avg merge
10h 16m
Merged PRs (30d)
20

Description

What happened?

I am running selenium grid with a video container on CI (Linux). The test suite runs over a 100 tests sequentially, one by one.
Every test opens and closes a new browser window and sets a unique name for the video. After the run I expected to see one video for every test ran, when in fact amount of videos is random, with many missing. (20 to 86, rarely 100+)

I was able to reproduce the same behaviour locally on MacOs, by starting the containers and manually running the same test multiple times in a row, checking the amount of videos after each execution. All possible logging was enabled, but still insufficient for me to get to the bottom of the problem. My best efforts resulted in conclusion that video container is not always aware a new session has been created to start recording it.

Full debug logs are attached. log.log
There test was ran 3 times, ID of the session that was not recorded is 7ee3e3d1-3f69-4022-ab5c-5f5537dd1433. IP of the video container in the logs is 172.18.0.4

To reproduce the issue, run reproduce.sh from this project I created specifically for this
You will need to install gradle to run the script.
The script will start the containers and run selenium test in a loop, checking amount of videos generated every iteration.

Command used to start Selenium Grid with Docker (or Kubernetes)
docker compose -f "docker-compose.yaml" --project-name test up --wait;
Relevant log output
selenium-hub     | 21:08:39.172 INFO [LocalDistributor.newSession] - Session created by the Distributor. Id: 48ef380c-161d-47f4-8697-8171e0618491 
selenium-hub     | 21:08:43.428 INFO [LocalDistributor.newSession] - Session created by the Distributor. Id: 7ba51047-8ecd-4f2a-87ce-1835319ee384 
selenium-hub     | 21:08:46.760 INFO [LocalDistributor.newSession] - Session created by the Distributor. Id: 7ee3e3d1-3f69-4022-ab5c-5f5537dd1433
Operating System

MacOs, Linux.

Docker Selenium version (image tag)

selenium/hub:4.25.0-20241024

Selenium Grid chart version (chart version)

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running reproduce.sh from the linked selenium-missing-videos-bug project with the provided Docker Compose setup, then compare generated video counts with the session IDs in the attached logs. Trace how the video container learns about new sessions, especially session 7ee3e3d1-3f69-4022-ab5c-5f5537dd1433; done means repeated runs produce a video for every test session.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker
Domain
devops, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.