Skip to content

Commit bf9d3f1

Browse files
committed
[grid] Honoring max concurrent sessions setting
1 parent 4f1781e commit bf9d3f1

File tree

5 files changed

+15
-6
lines changed

5 files changed

+15
-6
lines changed

java/server/src/org/openqa/selenium/grid/graphql/Grid.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ public List<Node> getNodes() {
8787
status.getUri(),
8888
status.getAvailability(),
8989
status.getMaxSessionCount(),
90+
status.getSlots().size(),
9091
stereotypes,
9192
sessions,
9293
status.getVersion(),
@@ -107,10 +108,7 @@ public int getSessionCount() {
107108

108109
public int getTotalSlots() {
109110
return distributorStatus.get().getNodes().stream()
110-
.mapToInt(status -> {
111-
int slotCount = status.getSlots().size();
112-
return Math.min(status.getMaxSessionCount(), slotCount);
113-
})
111+
.mapToInt(status -> status.getSlots().size())
114112
.sum();
115113
}
116114

@@ -123,6 +121,7 @@ public int getSessionQueueSize() {
123121
}
124122

125123
public List<String> getSessionQueueRequests() {
124+
//noinspection unchecked
126125
return ((List<Capabilities>) queueInfoMap.get("request-payloads")).stream()
127126
.map(JSON::toJson)
128127
.collect(Collectors.toList());

java/server/src/org/openqa/selenium/grid/graphql/Node.java

+7
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,14 @@ public class Node {
4343
private final Map<Session, Slot> activeSessions;
4444
private final String version;
4545
private final OsInfo osInfo;
46+
private final int slotCount;
4647

4748

4849
public Node(NodeId id,
4950
URI uri,
5051
Availability status,
5152
int maxSession,
53+
int slotCount,
5254
Map<Capabilities, Integer> stereotypes,
5355
Map<Session, Slot> activeSessions,
5456
String version,
@@ -57,6 +59,7 @@ public Node(NodeId id,
5759
this.uri = Require.nonNull("Node uri", uri);
5860
this.status = status;
5961
this.maxSession = maxSession;
62+
this.slotCount = slotCount;
6063
this.stereotypes = Require.nonNull("Node stereotypes", stereotypes);
6164
this.activeSessions = Require.nonNull("Active sessions", activeSessions);
6265
this.version = Require.nonNull("Grid Node version", version);
@@ -69,6 +72,10 @@ public List<org.openqa.selenium.grid.graphql.Session> getSessions() {
6972
.collect(ImmutableList.toImmutableList());
7073
}
7174

75+
public int getSlotCount() {
76+
return slotCount;
77+
}
78+
7279
public int getSessionCount() {
7380
return activeSessions.size();
7481
}

java/server/src/org/openqa/selenium/grid/graphql/selenium-grid-schema.graphqls

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ type Node {
3838
uri: Uri!
3939
status: Status!
4040
maxSession: Int!
41+
slotCount: Int!
4142
sessions: [Session]!
4243
sessionCount: Int!
4344
stereotypes: String!

java/server/src/org/openqa/selenium/grid/node/local/LocalNode.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ public static class Builder {
534534
private final URI gridUri;
535535
private final Secret registrationSecret;
536536
private final ImmutableList.Builder<SessionSlot> factories;
537-
private int maxCount = Runtime.getRuntime().availableProcessors() * 5;
537+
private int maxCount = Runtime.getRuntime().availableProcessors();
538538
private Ticker ticker = Ticker.systemTicker();
539539
private Duration sessionTimeout = Duration.ofMinutes(5);
540540
private HealthCheck healthCheck;

java/server/src/org/openqa/selenium/grid/node/local/LocalNodeFactory.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ public static Node create(Config config) {
5959
eventOptions.getEventBus(),
6060
serverOptions.getExternalUri(),
6161
nodeOptions.getPublicGridUri().orElseGet(serverOptions::getExternalUri),
62-
secretOptions.getRegistrationSecret());
62+
secretOptions.getRegistrationSecret())
63+
.maximumConcurrentSessions(nodeOptions.getMaxSessions());
64+
6365

6466
List<DriverService.Builder<?, ?>> builders = new ArrayList<>();
6567
ServiceLoader.load(DriverService.Builder.class).forEach(builders::add);

0 commit comments

Comments
 (0)