VIC Reports "unknown error making dispatchers for 'selenium-hub'" on 3.14.0-francium and later
search cancel

VIC Reports "unknown error making dispatchers for 'selenium-hub'" on 3.14.0-francium and later

book

Article ID: 317015

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
  • Selenium hub container fails to start and shows the messages similar to the following when inspected with docker log containerID:
2018-10-16 23:36:57,201 INFO supervisord started with pid 345
2018-10-16 23:36:58,203 INFO spawnerr: unknown error making dispatchers for 'selenium-hub': EACCES
2018-10-16 23:36:59,208 INFO gave up: selenium-hub entered FATAL state, too many start retries too quickly


Environment

VMware vSphere Integrated Containers 1.5.x

Resolution

Selenium hub switched to using Supervisord for managing services as of 3.14.0-francium. The user the Supervisord process runs under needs to be a member of the 'tty' group to have the required access to start.

Build the image to add the seluser to the tty group before supervisord starts. Below is an example of how to do this.
  1. Create a text file named exactly Dockerfile with the following text. 
FROM selenium/hub:3.14.0
RUN sudo usermod -a -G tty seluser
  1. Build a new container using the Dockerfile. Use a local docker-engine like that comes with the photon VM dch-photon build node. Example build command would look like the following on a local docker-engine:
docker build -t customhub .
  1. Tag the image for the registry to push the image to. The following example assumes the VIC registry is being used. 
docker tag customhub:latest vicappliance00.gsslabs.org/default-project/customhub:3.14.0
  1. Login to the registry and push the image. Again the example assumes a private VIC registry is being used, but docker hub can be used if preferred.
docker push vicappliance00.gsslabs.org/default-project/customhub:3.14.0

Now the new image can be pulled to the VCH and used normally. Note to specify the "seluser" user when create/running the container.

Workaround:
Run the container as root user by specifying root in the container create. 
Docker Compose Reference
Docker Client Reference