Description
What happened?
I am using and deployed the latest version of the selenium-grid chart. The deployment is made using terraform but I can provide all values I configured in the chart.
I deploy the chart with autoscaling.enabled: true
and autoscaling.enableWithExistingKEDA: true
. I have only a selenium deployment as the chromeNode is a keda scaleObject (autoscaling.scalingType: job
). Keda is deployed in another namespace.
This is only the configuration I supplied in my values.yaml file :
autoscaling:
enableWithExistingKEDA: true
enabled: true
scaledJobOptions:
scalingStrategy:
strategy: default
scaledOptions:
maxReplicaCount: 24
minReplicaCount: 0
pollingInterval: 5
scalingType: job
basicAuth:
create: true
embeddedUrl: true
enabled: true
password: $PASSWORD
username: $USERNAME
chromeNode:
deploymentEnabled: false
enabled: true
extraEnvironmentVariables:
- name: SE_REJECT_UNSUPPORTED_CAPS
value: "true"
nameOverride: selenium-node-chrome
nodeMaxSessions: 1
scaledOptions:
maxReplicaCount: 16
minReplicaCount: 0
pollingInterval: 10
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
global:
seleniumGrid:
defaultComponentLivenessProbe: httpGet
logLevel: FINER
nodeMaxSessions: 1
stdoutProbeLog: true
Just notice that I have an ingress configured and deploy outside of the selenium-grid chart by terraform.
As I am working on GKE, I have some requirements to be met. But this is the ingress setup :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: selenium
namespace: selenium
generation: 1
annotations:
kubernetes.io/ingress-class: gce
kubernetes.io/ingress.allow-http: 'true'
kubernetes.io/ingress.global-static-ip-name: my-organization-com-selenium
networking.gke.io/managed-certificates: selenium
networking.gke.io/v1beta1.FrontendConfig: http-redirect
status:
loadBalancer:
ingress:
- ip: <My-IP>
spec:
defaultBackend:
service:
name: selenium
port:
number: 4444
My hub is available on my-organization.com
domain. I can access the hub using the basic auth. Everything is working well on this side.
Now When I run a test locally or from my CI/CD tool, I can see that keda is triggered and create the job ScaleObject. But No session are running in the job. The queue is tuck in pending and nothing seems to be ran into the pod.


I'd like to point out that when I disable autoscaling and only configure the chromeNode in deployment mode, the same test and process work. So I don't think this is a network or a test configuration issue.
When i ran my test I have this log in keda-operator :
{"level":"info","ts":"2025-02-26T14:47:34Z","logger":"scaleexecutor","msg":"Creating jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Effective number of max jobs":1}
{"level":"info","ts":"2025-02-26T14:47:34Z","logger":"scaleexecutor","msg":"Creating jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of jobs":1}
{"level":"info","ts":"2025-02-26T14:47:35Z","logger":"scaleexecutor","msg":"Created jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of jobs":1}
{"level":"info","ts":"2025-02-26T14:47:44Z","logger":"scaleexecutor","msg":"Scaling Jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of running Jobs":1}
{"level":"info","ts":"2025-02-26T14:47:44Z","logger":"scaleexecutor","msg":"Scaling Jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of pending Jobs ":1}
{"level":"info","ts":"2025-02-26T14:47:44Z","logger":"scaleexecutor","msg":"Creating jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Effective number of max jobs":0}
{"level":"info","ts":"2025-02-26T14:47:44Z","logger":"scaleexecutor","msg":"Creating jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of jobs":0}
{"level":"info","ts":"2025-02-26T14:47:44Z","logger":"scaleexecutor","msg":"Created jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of jobs":0}
{"level":"info","ts":"2025-02-26T14:47:54Z","logger":"scaleexecutor","msg":"Scaling Jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of running Jobs":1}
{"level":"info","ts":"2025-02-26T14:47:54Z","logger":"scaleexecutor","msg":"Scaling Jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of pending Jobs ":1}
{"level":"info","ts":"2025-02-26T14:47:55Z","logger":"scaleexecutor","msg":"Creating jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Effective number of max jobs":0}
{"level":"info","ts":"2025-02-26T14:47:55Z","logger":"scaleexecutor","msg":"Creating jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of jobs":0}
{"level":"info","ts":"2025-02-26T14:47:55Z","logger":"scaleexecutor","msg":"Created jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of jobs":0}
{"level":"info","ts":"2025-02-26T14:48:04Z","logger":"scaleexecutor","msg":"Scaling Jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of running Jobs":1}
{"level":"info","ts":"2025-02-26T14:48:04Z","logger":"scaleexecutor","msg":"Scaling Jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of pending Jobs ":1}
{"level":"info","ts":"2025-02-26T14:48:04Z","logger":"scaleexecutor","msg":"Creating jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Effective number of max jobs":0}
{"level":"info","ts":"2025-02-26T14:48:04Z","logger":"scaleexecutor","msg":"Creating jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of jobs":0}
{"level":"info","ts":"2025-02-26T14:48:04Z","logger":"scaleexecutor","msg":"Created jobs","scaledJob.Name":"selenium-node-chrome","scaledJob.Namespace":"selenium","Number of jobs":0}
As you can, a job is created and scale a pod, then the queue is not consumed by the pods (no session is running in it).
Command used to start Selenium Grid with Docker (or Kubernetes)
autoscaling:
enableWithExistingKEDA: true
enabled: true
scaledJobOptions:
scalingStrategy:
strategy: eager
scaledOptions:
maxReplicaCount: 24
minReplicaCount: 0
pollingInterval: 10
triggers:
- metadata:
activationThreshold: 0
browserName: chrome
unsafeSsl: "true"
url: http://selenium.selenium.svc.cluster.local:4444/graphql
type: selenium-grid
scalingType: job
basicAuth:
create: true
embeddedUrl: true
enabled: true
password: $PASSWORD
username: $USERNAME
chromeNode:
affinity:
node_affinity:
required_during_scheduling_ignored_during_execution:
node_selector_terms:
- match_expressions:
- key: my-organization.com/test-node
operator: In
values:
- test
enabled: true
extraEnvironmentVariables:
- name: SE_REJECT_UNSUPPORTED_CAPS
value: "true"
nameOverride: selenium-node-chrome
nodeMaxSessions: 1
scaledOptions:
maxReplicaCount: 15
minReplicaCount: 0
pollingInterval: 10
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
tolerations:
- effect: NoSchedule
key: my-organization.com/test-node
operator: Equal
value: test
edgeNode:
enabled: false
firefoxNode:
enabled: false
global:
seleniumGrid:
defaultComponentLivenessProbe: httpGet
logLevel: FINER
nodeMaxSessions: 1
stdoutProbeLog: true
hub:
affinity:
node_affinity:
required_during_scheduling_ignored_during_execution:
node_selector_terms:
- match_expressions:
- key: my-organization.com/test-node
operator: In
values:
- test
nameOverride: selenium
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
serviceType: NodePort
tolerations:
- effect: NoSchedule
key: my-organization.com/test-node
operator: Equal
value: test
ingress:
enabled: false
ingress-nginx:
enabled: false
jaeger:
enabled: false
keda:
enabled: false
kube-prometheus-stack:
enabled: false
postgresql:
enabled: false
redis:
enabled: false
tls:
create: false
enabled: false
videoRecorder:
enabled: true
uploader:
enabled: false
Relevant log output
2025-02-26 14:47:00,807 INFO Included extra file "/etc/supervisor/conf.d/chrome-cleanup.conf" during parsing
2025-02-26 14:47:00,807 INFO Included extra file "/etc/supervisor/conf.d/recorder.conf" during parsing
2025-02-26 14:47:00,807 INFO Included extra file "/etc/supervisor/conf.d/selenium.conf" during parsing
2025-02-26 14:47:00,807 INFO Included extra file "/etc/supervisor/conf.d/uploader.conf" during parsing
2025-02-26 14:47:00,810 INFO RPC interface 'supervisor' initialized
2025-02-26 14:47:00,810 INFO supervisord started with pid 8
2025-02-26 14:47:01,813 INFO spawned: 'xvfb' with pid 9
2025-02-26 14:47:01,814 INFO spawned: 'vnc' with pid 10
2025-02-26 14:47:01,818 INFO spawned: 'novnc' with pid 11
2025-02-26 14:47:01,819 INFO spawned: 'selenium-node' with pid 13
2025-02-26 14:47:01,824 INFO success: selenium-node entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
Appending Selenium option: --register-period 120
Appending Selenium option: --register-cycle 5
Appending Selenium option: --register-shutdown-on-failure
Appending Selenium option: --heartbeat-period 30
Appending Selenium option: --log-level FINER
Appending Selenium option: --http-logs false
Appending Selenium option: --structured-logs false
Generating Selenium Config
Appending Selenium option: --tracing false
Tracing is disabled
Appending Selenium option: --bind-host false
Appending Selenium option: --config /opt/selenium/config.toml
Selenium Grid Node configuration:
[events]
publish = "tcp://selenium:4442"
subscribe = "tcp://selenium:4443"
[server]
host = "10.9.43.116"
port = "5555"
[node]
grid-url = "http://selenium.selenium:31444"
session-timeout = 300
override-max-sessions = false
detect-drivers = false
drain-after-session-count = 1
max-sessions = 1
[[node.driver-configuration]]
display-name = "chrome"
stereotype = '{"browserName": "chrome", "browserVersion": "", "platformName": "", "goog:chromeOptions": {"binary": "/usr/bin/google-chrome"}, "se:containerName": "selenium-node-chrome-ppmdk-rbcsn", "container:hostname": "selenium-node-chrome-ppmdk-rbcsn"}'
max-sessions = 1
Starting Selenium Grid Node...
Using JAVA_OPTS: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs -XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=50 -Dwebdriver.remote.enableTracing=false -Dwebdriver.httpclient.version=HTTP_1_1
2025-02-26 14:47:02,881 INFO success: xvfb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2025-02-26 14:47:02,881 INFO success: vnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2025-02-26 14:47:02,881 INFO success: novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
14:47:03.102 INFO [LoggingOptions.configureLogEncoding] - Using the system default encoding
14:47:03.107 INFO [LoggingOptions.getTracer] - Using null tracer
14:47:03.208 INFO [UnboundZmqEventBus.<init>] - Connecting to tcp://selenium:4442 and tcp://selenium:4443
14:47:03.302 INFO [UnboundZmqEventBus.<init>] - Sockets created
14:47:04.304 INFO [UnboundZmqEventBus.<init>] - Event bus ready
14:47:04.315 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = JMImplementation:type=MBeanServerDelegate
14:47:04.317 FINER [Repository.addMBean] - name = JMImplementation:type=MBeanServerDelegate
14:47:04.318 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object JMImplementation:type=MBeanServerDelegate
14:47:04.319 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered JMImplementation:type=MBeanServerDelegate
14:47:04.331 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.RuntimeImpl
14:47:04.331 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:type=Runtime
14:47:04.331 FINER [Repository.addMBean] - name = java.lang:type=Runtime
14:47:04.332 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:type=Runtime
14:47:04.332 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:type=Runtime
14:47:04.337 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for com.sun.management.internal.HotSpotThreadImpl
14:47:04.337 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:type=Threading
14:47:04.338 FINER [Repository.addMBean] - name = java.lang:type=Threading
14:47:04.338 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:type=Threading
14:47:04.338 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:type=Threading
14:47:04.347 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for com.sun.management.internal.OperatingSystemImpl
14:47:04.348 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:type=OperatingSystem
14:47:04.348 FINER [Repository.addMBean] - name = java.lang:type=OperatingSystem
14:47:04.348 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:type=OperatingSystem
14:47:04.348 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:type=OperatingSystem
14:47:04.350 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.MemoryManagerImpl
14:47:04.351 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=CodeCacheManager,type=MemoryManager
14:47:04.351 FINER [Repository.addMBean] - name = java.lang:name=CodeCacheManager,type=MemoryManager
14:47:04.351 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=CodeCacheManager,type=MemoryManager
14:47:04.351 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=CodeCacheManager,type=MemoryManager
14:47:04.351 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.MemoryManagerImpl
14:47:04.376 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=Metaspace Manager,type=MemoryManager
14:47:04.376 FINER [Repository.addMBean] - name = java.lang:name=Metaspace Manager,type=MemoryManager
14:47:04.376 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=Metaspace Manager,type=MemoryManager
14:47:04.376 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=Metaspace Manager,type=MemoryManager
14:47:04.378 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.MemoryPoolImpl
14:47:04.378 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool
14:47:04.378 FINER [Repository.addMBean] - name = java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool
14:47:04.378 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool
14:47:04.378 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool
14:47:04.379 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.MemoryPoolImpl
14:47:04.379 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=Metaspace,type=MemoryPool
14:47:04.379 FINER [Repository.addMBean] - name = java.lang:name=Metaspace,type=MemoryPool
14:47:04.379 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=Metaspace,type=MemoryPool
14:47:04.379 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=Metaspace,type=MemoryPool
14:47:04.379 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.MemoryPoolImpl
14:47:04.379 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool
14:47:04.379 FINER [Repository.addMBean] - name = java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool
14:47:04.380 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool
14:47:04.380 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool
14:47:04.380 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.MemoryPoolImpl
14:47:04.380 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=Compressed Class Space,type=MemoryPool
14:47:04.380 FINER [Repository.addMBean] - name = java.lang:name=Compressed Class Space,type=MemoryPool
14:47:04.380 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=Compressed Class Space,type=MemoryPool
14:47:04.380 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=Compressed Class Space,type=MemoryPool
14:47:04.380 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.MemoryPoolImpl
14:47:04.381 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=G1 Eden Space,type=MemoryPool
14:47:04.381 FINER [Repository.addMBean] - name = java.lang:name=G1 Eden Space,type=MemoryPool
14:47:04.381 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=G1 Eden Space,type=MemoryPool
14:47:04.381 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=G1 Eden Space,type=MemoryPool
14:47:04.381 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.MemoryPoolImpl
14:47:04.381 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=G1 Old Gen,type=MemoryPool
14:47:04.381 FINER [Repository.addMBean] - name = java.lang:name=G1 Old Gen,type=MemoryPool
14:47:04.381 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=G1 Old Gen,type=MemoryPool
14:47:04.382 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=G1 Old Gen,type=MemoryPool
14:47:04.382 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.MemoryPoolImpl
14:47:04.382 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=G1 Survivor Space,type=MemoryPool
14:47:04.382 FINER [Repository.addMBean] - name = java.lang:name=G1 Survivor Space,type=MemoryPool
14:47:04.382 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=G1 Survivor Space,type=MemoryPool
14:47:04.382 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=G1 Survivor Space,type=MemoryPool
14:47:04.382 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.MemoryPoolImpl
14:47:04.382 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool
14:47:04.383 FINER [Repository.addMBean] - name = java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool
14:47:04.383 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool
14:47:04.383 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool
14:47:04.383 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.CompilationImpl
14:47:04.384 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:type=Compilation
14:47:04.384 FINER [Repository.addMBean] - name = java.lang:type=Compilation
14:47:04.384 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:type=Compilation
14:47:04.384 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:type=Compilation
14:47:04.384 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.MemoryImpl
14:47:04.385 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:type=Memory
14:47:04.385 FINER [Repository.addMBean] - name = java.lang:type=Memory
14:47:04.385 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:type=Memory
14:47:04.385 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:type=Memory
14:47:04.387 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.ManagementFactoryHelper$PlatformLoggingImpl
14:47:04.387 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.util.logging:type=Logging
14:47:04.387 FINER [Repository.addMBean] - name = java.util.logging:type=Logging
14:47:04.387 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.util.logging:type=Logging
14:47:04.387 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.util.logging:type=Logging
14:47:04.388 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.ClassLoadingImpl
14:47:04.388 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:type=ClassLoading
14:47:04.388 FINER [Repository.addMBean] - name = java.lang:type=ClassLoading
14:47:04.388 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:type=ClassLoading
14:47:04.388 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:type=ClassLoading
14:47:04.491 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = com.sun.management:type=DiagnosticCommand
14:47:04.491 FINER [Repository.addMBean] - name = com.sun.management:type=DiagnosticCommand
14:47:04.492 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object com.sun.management:type=DiagnosticCommand
14:47:04.492 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered com.sun.management:type=DiagnosticCommand
14:47:04.493 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for com.sun.management.internal.GarbageCollectorExtImpl
14:47:04.493 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=G1 Young Generation,type=GarbageCollector
14:47:04.493 FINER [Repository.addMBean] - name = java.lang:name=G1 Young Generation,type=GarbageCollector
14:47:04.493 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=G1 Young Generation,type=GarbageCollector
14:47:04.493 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=G1 Young Generation,type=GarbageCollector
14:47:04.493 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for com.sun.management.internal.GarbageCollectorExtImpl
14:47:04.494 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=G1 Concurrent GC,type=GarbageCollector
14:47:04.494 FINER [Repository.addMBean] - name = java.lang:name=G1 Concurrent GC,type=GarbageCollector
14:47:04.494 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=G1 Concurrent GC,type=GarbageCollector
14:47:04.494 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=G1 Concurrent GC,type=GarbageCollector
14:47:04.494 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for com.sun.management.internal.GarbageCollectorExtImpl
14:47:04.494 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.lang:name=G1 Old Generation,type=GarbageCollector
14:47:04.494 FINER [Repository.addMBean] - name = java.lang:name=G1 Old Generation,type=GarbageCollector
14:47:04.494 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.lang:name=G1 Old Generation,type=GarbageCollector
14:47:04.494 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.lang:name=G1 Old Generation,type=GarbageCollector
14:47:04.496 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for com.sun.management.internal.HotSpotDiagnostic
14:47:04.496 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = com.sun.management:type=HotSpotDiagnostic
14:47:04.496 FINER [Repository.addMBean] - name = com.sun.management:type=HotSpotDiagnostic
14:47:04.496 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object com.sun.management:type=HotSpotDiagnostic
14:47:04.496 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered com.sun.management:type=HotSpotDiagnostic
14:47:04.498 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.ManagementFactoryHelper$1
14:47:04.498 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.nio:name=mapped,type=BufferPool
14:47:04.498 FINER [Repository.addMBean] - name = java.nio:name=mapped,type=BufferPool
14:47:04.498 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.nio:name=mapped,type=BufferPool
14:47:04.499 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.nio:name=mapped,type=BufferPool
14:47:04.499 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.ManagementFactoryHelper$1
14:47:04.499 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.nio:name=direct,type=BufferPool
14:47:04.499 FINER [Repository.addMBean] - name = java.nio:name=direct,type=BufferPool
14:47:04.499 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.nio:name=direct,type=BufferPool
14:47:04.499 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.nio:name=direct,type=BufferPool
14:47:04.500 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for sun.management.ManagementFactoryHelper$1
14:47:04.500 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = java.nio:name=mapped - 'non-volatile memory',type=BufferPool
14:47:04.500 FINER [Repository.addMBean] - name = java.nio:name=mapped - 'non-volatile memory',type=BufferPool
14:47:04.500 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object java.nio:name=mapped - 'non-volatile memory',type=BufferPool
14:47:04.500 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered java.nio:name=mapped - 'non-volatile memory',type=BufferPool
14:47:04.503 FINER [StandardMBean.getMBeanInfo] - Building MBeanInfo for jdk.management.jfr.FlightRecorderMXBeanImpl
14:47:04.504 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = jdk.management.jfr:type=FlightRecorder
14:47:04.505 FINER [Repository.addMBean] - name = jdk.management.jfr:type=FlightRecorder
14:47:04.505 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object jdk.management.jfr:type=FlightRecorder
14:47:04.505 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered jdk.management.jfr:type=FlightRecorder
14:47:04.577 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = org.seleniumhq.grid:type=Config,name=BaseServerConfig
14:47:04.578 FINER [Repository.addMBean] - name = org.seleniumhq.grid:type=Config,name=BaseServerConfig
14:47:04.578 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object org.seleniumhq.grid:name=BaseServerConfig,type=Config
14:47:04.578 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered org.seleniumhq.grid:type=Config,name=BaseServerConfig
14:47:04.583 INFO [NodeServer.createHandlers] - Reporting self as: http://10.9.43.116:5555
14:47:04.587 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = org.seleniumhq.grid:type=Config,name=BaseServerConfig
14:47:04.587 FINER [Repository.addMBean] - name = org.seleniumhq.grid:type=Config,name=BaseServerConfig
14:47:04.587 INFO [LoggingOptions.getTracer] - Using null tracer
14:47:04.600 INFO [NodeOptions.getSessionFactories] - Detected 1 available processors
14:47:04.694 INFO [NodeOptions.report] - Adding chrome for {"browserName": "chrome","browserVersion": "","container:hostname": "selenium-node-chrome-ppmdk-rbcsn","goog:chromeOptions": {"binary": "\u002fusr\u002fbin\u002fgoogle-chrome"},"platformName": "any","se:containerName": "selenium-node-chrome-ppmdk-rbcsn","se:noVncPort": 7900,"se:vncEnabled": true} 1 times
14:47:04.780 INFO [Node.<init>] - Binding additional locator mechanisms: relative
14:47:04.808 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = org.seleniumhq.grid:type=Node,name=LocalNode
14:47:04.809 FINER [Repository.addMBean] - name = org.seleniumhq.grid:type=Node,name=LocalNode
14:47:04.809 FINER [DefaultMBeanServerInterceptor.registerWithRepository] - Send create notification of object org.seleniumhq.grid:name=LocalNode,type=Node
14:47:04.809 FINER [DefaultMBeanServerInterceptor.sendNotification] - JMX.mbean.registered org.seleniumhq.grid:type=Node,name=LocalNode
14:47:04.813 FINER [DefaultMBeanServerInterceptor.registerDynamicMBean] - ObjectName = org.seleniumhq.grid:type=Config,name=BaseServerConfig
14:47:04.813 FINER [Repository.addMBean] - name = org.seleniumhq.grid:type=Config,name=BaseServerConfig
14:47:04.819 DEBUG [MultithreadEventLoopGroup.<clinit>] - -Dio.netty.eventLoopThreads: 2
14:47:04.824 DEBUG [GlobalEventExecutor.<clinit>] - -Dio.netty.globalEventExecutor.quietPeriodSeconds: 1
14:47:04.880 DEBUG [InternalThreadLocalMap.<clinit>] - -Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
14:47:04.881 DEBUG [InternalThreadLocalMap.<clinit>] - -Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
14:47:04.896 DEBUG [PlatformDependent0.explicitNoUnsafeCause0] - -Dio.netty.noUnsafe: false
14:47:04.896 DEBUG [PlatformDependent0.javaVersion0] - Java version: 21
14:47:04.897 DEBUG [PlatformDependent0.<clinit>] - sun.misc.Unsafe.theUnsafe: available
14:47:04.898 DEBUG [PlatformDependent0.<clinit>] - sun.misc.Unsafe base methods: all available
14:47:04.898 DEBUG [PlatformDependent0.<clinit>] - sun.misc.Unsafe.storeFence: available
14:47:04.899 DEBUG [PlatformDependent0.<clinit>] - java.nio.Buffer.address: available
14:47:04.899 DEBUG [PlatformDependent0.<clinit>] - direct buffer constructor: unavailable: Reflective setAccessible(true) disabled
14:47:04.900 DEBUG [PlatformDependent0.<clinit>] - java.nio.Bits.unaligned: available, true
14:47:04.901 DEBUG [PlatformDependent0.<clinit>] - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable: class io.netty.util.internal.PlatformDependent0$7 cannot access class jdk.internal.misc.Unsafe (in module java.base) because module java.base does not export jdk.internal.misc to unnamed module @9f70c54
14:47:04.901 DEBUG [PlatformDependent0.<clinit>] - java.nio.DirectByteBuffer.<init>(long, {int,long}): unavailable
14:47:04.901 DEBUG [PlatformDependent.unsafeUnavailabilityCause0] - sun.misc.Unsafe: available
14:47:04.902 DEBUG [PlatformDependent.tmpdir0] - -Dio.netty.tmpdir: /tmp (java.io.tmpdir)
14:47:04.902 DEBUG [PlatformDependent.bitMode0] - -Dio.netty.bitMode: 64 (sun.arch.data.model)
14:47:04.902 DEBUG [PlatformDependent.<clinit>] - -Dio.netty.maxDirectMemory: -1 bytes
14:47:04.903 DEBUG [PlatformDependent.<clinit>] - -Dio.netty.uninitializedArrayAllocationThreshold: -1
14:47:04.904 DEBUG [CleanerJava9.<clinit>] - java.nio.ByteBuffer.cleaner(): available
14:47:04.904 DEBUG [PlatformDependent.<clinit>] - -Dio.netty.noPreferDirect: false
14:47:04.905 DEBUG [NioEventLoop.<clinit>] - -Dio.netty.noKeySetOptimization: false
14:47:04.905 DEBUG [NioEventLoop.<clinit>] - -Dio.netty.selectorAutoRebuildThreshold: 512
14:47:04.909 DEBUG [PlatformDependent$Mpsc.<clinit>] - org.jctools-core.MpscChunkedArrayQueue: available
14:47:04.983 DEBUG [DefaultChannelId.<clinit>] - -Dio.netty.processId: 62 (auto-detected)
14:47:04.986 DEBUG [NetUtil.<clinit>] - -Djava.net.preferIPv4Stack: false
14:47:04.986 DEBUG [NetUtil.<clinit>] - -Djava.net.preferIPv6Addresses: false
14:47:04.987 DEBUG [NetUtilInitializations.determineLoopback] - Loopback interface: lo (lo, 127.0.0.1)
14:47:04.987 DEBUG [NetUtil$SoMaxConnAction.run] - /proc/sys/net/core/somaxconn: 1024
14:47:04.988 DEBUG [DefaultChannelId.<clinit>] - -Dio.netty.machineId: 92:bf:6f:ff:fe:05:1e:d0 (auto-detected)
14:47:04.994 DEBUG [ResourceLeakDetector.<clinit>] - -Dio.netty.leakDetection.level: simple
14:47:04.994 DEBUG [ResourceLeakDetector.<clinit>] - -Dio.netty.leakDetection.targetRecords: 4
14:47:05.007 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.numHeapArenas: 2
14:47:05.007 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.numDirectArenas: 2
14:47:05.007 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.pageSize: 8192
14:47:05.007 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.maxOrder: 9
14:47:05.007 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.chunkSize: 4194304
14:47:05.007 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.smallCacheSize: 256
14:47:05.007 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.normalCacheSize: 64
14:47:05.007 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.maxCachedBufferCapacity: 32768
14:47:05.008 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.cacheTrimInterval: 8192
14:47:05.008 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.cacheTrimIntervalMillis: 0
14:47:05.008 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.useCacheForAllThreads: false
14:47:05.008 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.maxCachedByteBuffersPerChunk: 1023
14:47:05.008 DEBUG [PooledByteBufAllocator.<clinit>] - -Dio.netty.allocator.disableCacheFinalizersForFastThreadLocalThreads: false
14:47:05.013 DEBUG [ByteBufUtil.<clinit>] - -Dio.netty.allocator.type: pooled
14:47:05.014 DEBUG [ByteBufUtil.<clinit>] - -Dio.netty.threadLocalDirectBufferSize: 0
14:47:05.014 DEBUG [ByteBufUtil.<clinit>] - -Dio.netty.maxThreadLocalCharBufferSize: 16384
14:47:05.015 DEBUG [ChannelInitializerExtensions.getExtensions] - -Dio.netty.bootstrap.extensions: null
14:47:05.083 DEBUG [LoggingHandler.channelRegistered] - [id: 0xbb64dc53] REGISTERED
14:47:05.083 DEBUG [LoggingHandler.bind] - [id: 0xbb64dc53] BIND: 0.0.0.0/0.0.0.0:5555
14:47:05.085 DEBUG [LoggingHandler.channelActive] - [id: 0xbb64dc53, L:/0.0.0.0:5555] ACTIVE
14:47:05.086 INFO [NodeServer$2.start] - Starting registration process for Node http://10.9.43.116:5555
14:47:05.087 INFO [NodeServer.execute] - Started Selenium node 4.29.0 (revision 18ae989): http://10.9.43.116:5555
14:47:05.098 INFO [NodeServer$2.lambda$start$2] - Sending registration event...
14:47:05.109 DEBUG [LoggingHandler.channelRead] - [id: 0xbb64dc53, L:/0.0.0.0:5555] READ: [id: 0x3bcb660a, L:/10.9.43.116:5555 - R:/10.9.96.164:46708]
14:47:05.109 DEBUG [LoggingHandler.channelReadComplete] - [id: 0xbb64dc53, L:/0.0.0.0:5555] READ COMPLETE
14:47:05.113 DEBUG [LoggingHandler.channelRead] - [id: 0xbb64dc53, L:/0.0.0.0:5555] READ: [id: 0x772ca4a0, L:/10.9.43.116:5555 - R:/10.9.43.116:55318]
14:47:05.114 DEBUG [LoggingHandler.channelReadComplete] - [id: 0xbb64dc53, L:/0.0.0.0:5555] READ COMPLETE
14:47:05.178 DEBUG [AbstractByteBuf.<clinit>] - -Dio.netty.buffer.checkAccessible: true
14:47:05.178 DEBUG [AbstractByteBuf.<clinit>] - -Dio.netty.buffer.checkBounds: true
14:47:05.179 DEBUG [ResourceLeakDetectorFactory$DefaultResourceLeakDetectorFactory.newResourceLeakDetector] - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@19f95c9b
14:47:05.187 DEBUG [ZlibCodecFactory.<clinit>] - -Dio.netty.noJdkZlibDecoder: false
14:47:05.187 DEBUG [ZlibCodecFactory.<clinit>] - -Dio.netty.noJdkZlibEncoder: false
14:47:05.197 DEBUG [Recycler.<clinit>] - -Dio.netty.recycler.maxCapacityPerThread: 4096
14:47:05.197 DEBUG [Recycler.<clinit>] - -Dio.netty.recycler.ratio: 8
14:47:05.197 DEBUG [Recycler.<clinit>] - -Dio.netty.recycler.chunkSize: 32
14:47:05.197 DEBUG [Recycler.<clinit>] - -Dio.netty.recycler.blocking: false
14:47:05.197 DEBUG [Recycler.<clinit>] - -Dio.netty.recycler.batchFastThreadLocalOnly: true
14:47:05.277 DEBUG [RequestConverter.channelRead0] - Incoming message: DefaultHttpRequest(decodeResult: success, version: HTTP/1.1)
GET /status HTTP/1.1
Host: 10.9.43.116:5555
User-Agent: curl/8.5.0
Accept: */*
Authorization: Basic 2VsZ1hcHBzOk1kXI0dWk2M2= # replace by my own in order to not give you sensitive data but basic auth works very well
14:47:05.278 DEBUG [RequestConverter.channelRead0] - Start of http request: DefaultHttpRequest(decodeResult: success, version: HTTP/1.1)
GET /status HTTP/1.1
Host: 10.9.43.116:5555
User-Agent: curl/8.5.0
Accept: */*
Authorization: Basic 2VsZ1hcHBzOk1kXI0dWk2M2= # replace by my own in order to not give you sensitive data but basic auth works very well
14:47:05.277 DEBUG [RequestConverter.channelRead0] - Incoming message: DefaultHttpRequest(decodeResult: success, version: HTTP/1.1)
GET /status HTTP/1.1
Host: 10.9.43.116:5555
user-agent: selenium/4.29.0 (java unix)
14:47:05.278 DEBUG [RequestConverter.channelRead0] - Start of http request: DefaultHttpRequest(decodeResult: success, version: HTTP/1.1)
GET /status HTTP/1.1
Host: 10.9.43.116:5555
user-agent: selenium/4.29.0 (java unix)
14:47:05.286 DEBUG [RequestConverter.channelRead0] - Incoming message: EmptyLastHttpContent
14:47:05.286 DEBUG [RequestConverter.channelRead0] - Incoming message: EmptyLastHttpContent
14:47:05.286 DEBUG [RequestConverter.channelRead0] - End of http request: EmptyLastHttpContent
14:47:05.286 DEBUG [RequestConverter.channelRead0] - End of http request: EmptyLastHttpContent
14:47:05.292 DEBUG [HttpTracing.inject] - Injecting (GET) /status into org.openqa.selenium.remote.tracing.empty.NullSpan@43a520bb at org.openqa.selenium.remote.tracing.SpanWrappedHttpHandler:85
14:47:05.292 DEBUG [HttpTracing.inject] - Injecting (GET) /status into org.openqa.selenium.remote.tracing.empty.NullSpan@75c2259 at org.openqa.selenium.remote.tracing.SpanWrappedHttpHandler:85
14:47:05.302 DEBUG [RequestConverter.channelInactive] - Channel became inactive.
14:47:05.309 DEBUG [LoggingHandler.channelRead] - [id: 0xbb64dc53, L:/0.0.0.0:5555] READ: [id: 0x09d3b055, L:/10.9.43.116:5555 - R:/10.9.43.116:55334]
14:47:05.309 DEBUG [LoggingHandler.channelReadComplete] - [id: 0xbb64dc53, L:/0.0.0.0:5555] READ COMPLETE
14:47:05.310 DEBUG [RequestConverter.channelRead0] - Incoming message: DefaultHttpRequest(decodeResult: success, version: HTTP/1.1)
Operating System
GKE
Docker Selenium version (image tag)
4.29.0-20250222
Selenium Grid chart version (chart version)
0.40.0
Activity