Skip to content

Commit ab99331

Browse files
authored
Add docker max sessions flag (#9688)
* Add docker max sessions flag * Use Node max-sessions flag in Docker options * Hardcode "node" config section value to avoid a dependecy * Undo making the node section public
1 parent 04cc1a8 commit ab99331

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

java/server/src/org/openqa/selenium/grid/docker/DockerOptions.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public class DockerOptions {
5757
static final String DEFAULT_ASSETS_PATH = "/opt/selenium/assets";
5858
static final String DEFAULT_DOCKER_URL = "unix:/var/run/docker.sock";
5959
static final String DEFAULT_VIDEO_IMAGE = "selenium/video:latest";
60+
static final int DEFAULT_MAX_SESSIONS = Runtime.getRuntime().availableProcessors();
6061
private static final String DEFAULT_DOCKER_NETWORK = "bridge";
6162
private static final Logger LOG = Logger.getLogger(DockerOptions.class.getName());
6263
private static final Json JSON = new Json();
@@ -152,7 +153,9 @@ public Map<Capabilities, Collection<SessionFactory>> getDockerSessionFactories(
152153
Image videoImage = getVideoImage(docker);
153154
loadImages(docker, videoImage.getName());
154155

155-
int maxContainerCount = Runtime.getRuntime().availableProcessors();
156+
// Hard coding the config section value "node" to avoid an extra dependency
157+
int maxContainerCount = Math.min(config.getInt("node", "max-sessions")
158+
.orElse(DEFAULT_MAX_SESSIONS), DEFAULT_MAX_SESSIONS);
156159
ImmutableMultimap.Builder<Capabilities, SessionFactory> factories = ImmutableMultimap.builder();
157160
kinds.forEach((name, caps) -> {
158161
Image image = docker.getImage(name);

0 commit comments

Comments
 (0)