docker-selenium icon indicating copy to clipboard operation
docker-selenium copied to clipboard

[🐛 Bug]: Browser closes after a short time

Open GuillaumeFradet opened this issue 1 year ago • 39 comments

What happened?

Capture d’écran du 2024-01-08 19-03-40 Since today, whereas before it worked perfectly. The browser seems to close after a few minutes. However, I haven't changed anything in my configuration. Have you added a timeout somewhere?

As you can see from the screenshot, there's no longer a browser present in the session, yet the session remains active and the script continues to run on it.

Command used to start Selenium Grid with Docker (or Kubernetes)

global:
  seleniumGrid:
    # Image registry for all selenium components
    imageRegistry: selenium
    # Image tag for all selenium components
    imageTag: 4.16.1-20231212
    # Image tag for browser's nodes
    nodesImageTag: 4.16.1-20231212
    # Image tag for browser's video recorder
    videoImageTag: ffmpeg-6.1-20231212
    # Pull secret for all components, can be overridden individually
    imagePullSecret: ""

# Basic auth settings for Selenium Grid
basicAuth:
  # Enable or disable basic auth
  enabled: true
  # Username for basic auth
  username: admin
  # Password for basic auth
  password: xxxxx

# Deploy Router, Distributor, EventBus, SessionMap and Nodes separately
isolateComponents: false

# Service Account for all components
serviceAccount:
  create: true
  name: ""
  annotations: {}
  #  eks.amazonaws.com/role-arn: "arn:aws:iam::12345678:role/video-bucket-permissions"

# Configure the ingress resource to access the Grid installation.
ingress:
  # Enable or disable ingress resource
  enabled: true
  # Name of ingress class to select which controller will implement ingress resource
  className: ""
  # Refer to list nginx annotations: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md#annotations
  nginx:
    proxyTimeout: 3600
    proxyBuffer:
      size: 512M
      number: 4
  # Custom annotations for ingress resource
  annotations: {}
  # Default host for the ingress resource
  hostname: ""
  # Default host path for the ingress resource
  path: /
  # Default path type for the ingress resource
  pathType: Prefix
  # List of paths for the ingress resource. This will override the default path
  paths: []
  # TLS backend configuration for ingress resource
  tls: []

# ConfigMap that contains SE_EVENT_BUS_HOST, SE_EVENT_BUS_PUBLISH_PORT and SE_EVENT_BUS_SUBSCRIBE_PORT variables
busConfigMap:
  # Name of the configmap
  name: selenium-event-bus-config
  # Custom annotations for configmap
  annotations: {}

# ConfigMap that contains common environment variables for browser nodes
nodeConfigMap:
  name: selenium-node-config
  # Custom annotations for configmap
  annotations: {}

# Configuration for isolated components (applied only if `isolateComponents: true`)
components:

  # Configuration for router component
  router:
    # imageRegistry: selenium
    # Router image name
    imageName: router
    # Router image tag (this overwrites global.seleniumGrid.imageTag parameter)
    # imageTag: 4.16.1-20231212

    # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
    imagePullPolicy: IfNotPresent
    # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
    imagePullSecret: ""

    # Custom annotations for router pods
    annotations: {}
    # Router port
    port: 4444
    # Liveness probe settings
    livenessProbe:
      enabled: true
      path: /readyz
      initialDelaySeconds: 10
      failureThreshold: 10
      timeoutSeconds: 10
      periodSeconds: 10
      successThreshold: 1
    # Readiness probe settings
    readinessProbe:
      enabled: true
      path: /readyz
      initialDelaySeconds: 12
      failureThreshold: 10
      timeoutSeconds: 10
      periodSeconds: 10
      successThreshold: 1
    # Resources for router container
    resources: {}
    # SecurityContext for router container
    securityContext: {}
    # Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
    serviceType: ClusterIP
    # Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)
    loadBalancerIP: ""
    # Custom annotations for router service
    serviceAnnotations: {}
    # Tolerations for router pods
    tolerations: []
    # Node selector for router pods
    nodeSelector: {}
    # Priority class name for router pods
    priorityClassName: ""

  # Configuration for distributor component
  distributor:
    # imageRegistry: selenium
    # Distributor image name
    imageName: distributor
    # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter)
    # imageTag: 4.16.1-20231212

    # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
    imagePullPolicy: IfNotPresent
    # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
    imagePullSecret: ""

    # Custom annotations for Distributor pods
    annotations: {}
    # Distributor port
    port: 5553
    # Resources for Distributor container
    resources: {}
    # SecurityContext for Distributor container
    securityContext: {}
    # Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
    serviceType: ClusterIP
    # Custom annotations for Distributor service
    serviceAnnotations: {}
    # Tolerations for Distributor pods
    tolerations: []
    # Node selector for Distributor pods
    nodeSelector: {}
    # Priority class name for Distributor pods
    priorityClassName: ""

  # Configuration for Event Bus component
  eventBus:
    # imageRegistry: selenium
    # Event Bus image name
    imageName: event-bus
    # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter)
    # imageTag: 4.16.1-20231212

    # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
    imagePullPolicy: IfNotPresent
    # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
    imagePullSecret: ""

    # Custom annotations for Event Bus pods
    annotations: {}
    # Event Bus port
    port: 5557
    # Port where events are published
    publishPort: 4442
    # Port where to subscribe for events
    subscribePort: 4443
    # Resources for event-bus container
    resources: {}
    # SecurityContext for event-bus container
    securityContext: {}
    # Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
    serviceType: ClusterIP
    # Custom annotations for Event Bus service
    serviceAnnotations: {}
    # Tolerations for Event Bus pods
    tolerations: []
    # Node selector for Event Bus pods
    nodeSelector: {}
    # Priority class name for Event Bus pods
    priorityClassName: ""

  # Configuration for Session Map component
  sessionMap:
    # imageRegistry: selenium
    # Session Map image name
    imageName: sessions
    # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter)
    # imageTag: 4.16.1-20231212

    # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
    imagePullPolicy: IfNotPresent
    # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
    imagePullSecret: ""

    # Custom annotations for Session Map pods
    annotations: {}
    port: 5556
    # Resources for Session Map container
    resources: {}
    # SecurityContext for Session Map container
    securityContext: {}
    # Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
    serviceType: ClusterIP
    # Custom annotations for Session Map service
    serviceAnnotations: {}
    # Tolerations for Session Map pods
    tolerations: []
    # Node selector for Session Map pods
    nodeSelector: {}
    # Priority class name for Session Map pods
    priorityClassName: ""

  # Configuration for Session Queue component
  sessionQueue:
    # imageRegistry: selenium
    # Session Queue image name
    imageName: session-queue
    # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter)
    # imageTag: 4.16.1-20231212

    # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
    imagePullPolicy: IfNotPresent
    # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
    imagePullSecret: ""

    # Custom annotations for Session Queue pods
    annotations: {}
    port: 5559
    # Resources for Session Queue container
    resources: {}
    # SecurityContext for Session Queue container
    securityContext: {}
    # Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
    serviceType: ClusterIP
    # Custom annotations for Session Queue service
    serviceAnnotations: {}
    # Tolerations for Session Queue pods
    tolerations: []
    # Node selector for Session Queue pods
    nodeSelector: {}
    # Priority class name for Session Queue pods
    priorityClassName: ""

  # Custom sub path for all components
  subPath: /

  # Custom environment variables for all components
  extraEnvironmentVariables:
    # - name: SE_JAVA_OPTS
    #   value: "-Xmx512m"
    # - name:
    #   valueFrom:
    #     secretKeyRef:
    #       name: secret-name
    #       key: secret-key

  # Custom environment variables by sourcing entire configMap, Secret, etc. for all components
  extraEnvFrom:
    # - configMapRef:
    #   name: proxy-settings
    # - secretRef:
    #   name: mysecret

# Configuration for selenium hub deployment (applied only if `isolateComponents: false`)
hub:
  # imageRegistry: selenium
  # Selenium Hub image name
  imageName: hub
  # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter)
  # imageTag: 4.16.1-20231212
  # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
  imagePullPolicy: IfNotPresent
  # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
  imagePullSecret: ""

  # Custom annotations for Selenium Hub pods
  annotations: {}
  # Custom labels for Selenium Hub pods
  labels: {}
  # Port where events are published
  publishPort: 4442
  # Port where to subscribe for events
  subscribePort: 4443
  # Selenium Hub port
  port: 4444
  # Liveness probe settings
  livenessProbe:
    enabled: true
    path: /readyz
    initialDelaySeconds: 10
    failureThreshold: 10
    timeoutSeconds: 10
    periodSeconds: 10
    successThreshold: 1
  # Readiness probe settings
  readinessProbe:
    enabled: true
    path: /readyz
    initialDelaySeconds: 12
    failureThreshold: 10
    timeoutSeconds: 10
    periodSeconds: 10
    successThreshold: 1
  # Custom sub path for the hub deployment
  subPath: /
  # Custom environment variables for selenium-hub
  extraEnvironmentVariables:
    - name: SE_SESSION_REQUEST_TIMEOUT
      value: "5400"
    - name: SE_SESSION_RETRY_INTERVAL
      value: "15"
    - name: SE_NODE_SESSION_TIMEOUT
      value: "5400"
    #- name: SE_DRAIN_AFTER_SESSION_COUNT
    #  value: "1"
    # - name: SE_JAVA_OPTS
    #   value: "-Xmx512m"
    # - name: SECRET_VARIABLE
    #   valueFrom:
    #     secretKeyRef:
    #       name: secret-name
    #       key: secret-key
  # Custom environment variables by sourcing entire configMap, Secret, etc. for selenium-hub
  extraEnvFrom:
    # - configMapRef:
    #   name: proxy-settings
    # - secretRef:
    #   name: mysecret
  extraVolumeMounts: []
  # - name: my-extra-volume
  #   mountPath: /home/seluser/Downloads

  extraVolumes: []
  # - name: my-extra-volume
  #   emptyDir: {}
  # - name: my-extra-volume-from-pvc
  #   persistentVolumeClaim:
  #     claimName: my-pv-claim
  # Resources for selenium-hub container
  resources: {}
  # SecurityContext for selenium-hub container
  securityContext: {}
  # Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
  serviceType: LoadBalancer
  # Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)
  loadBalancerIP: ""
  # Custom annotations for Selenium Hub service
  serviceAnnotations: {}
  # Tolerations for selenium-hub pods
  tolerations: []
  # Node selector for selenium-hub pods
  nodeSelector: {}
  # Priority class name for selenium-hub pods
  priorityClassName: ""

# Keda scaled object configuration
autoscaling:
  # Enable autoscaling. Implies installing KEDA
  enabled: true
  # Enable autoscaling without automatically installing KEDA
  enableWithExistingKEDA: false
  # Which type of KEDA scaling to use: job or deployment
  scalingType: job
  # Annotations for KEDA resources: ScaledObject and ScaledJob
  annotations:
    helm.sh/hook: post-install,post-upgrade
  # Options for KEDA scaled resources (keep only common options used for both ScaledJob and ScaledObject)
  scaledOptions:
    minReplicaCount: 0
    maxReplicaCount: 500
    pollingInterval: 10
    # List of triggers. Be careful, the default trigger of selenium-grid will be overwritten if you specify this
    #triggers:
    #  - type: selenium-grid
    #    metadata:
    #      url: 'http://selenium-hub:4444/graphql' # Required
    #      browserName: 'chrome'  # Required
          #browserVersion: '91.0' # Optional. Only required when supporting multiple versions of browser in your Selenium Grid.
    #      unsafeSsl : 'true' # Optional
  # Options for KEDA ScaledJobs (only used when scalingType is set to "job")
  # see https://keda.sh/docs/4.16.1-20231212/concepts/scaling-jobs/#scaledjob-spec
  scaledJobOptions:
    scalingStrategy:
      strategy: default
    # Number of Completed jobs should be kept
    successfulJobsHistoryLimit: 0
    # Number of Failed jobs should be kept (for troubleshooting purposes)
    failedJobsHistoryLimit: 0
    jobTargetRef:
      parallelism: 1
      completions: 1
      backoffLimit: 0
     # activeDeadlineSeconds: 15 Coupe tout de la mauvaise façon
    deregisterLifecycle:
    preStop:
      exec:
        command:
          - bash
          - -c
          - |
            curl -X POST 127.0.0.1:5555/se/grid/node/drain --header 'X-REGISTRATION-SECRET;' && \
            while curl 127.0.0.1:5555/status; do sleep 1; done;

  # Options for KEDA ScaledObjects (only used when scalingType is set to "deployment")
  # see https://keda.sh/docs/4.16.1-20231212/concepts/scaling-deployments/#scaledobject-spec
  scaledObjectOptions:
    scaleTargetRef:
      kind: Deployment
  deregisterLifecycle:
    preStop:
      exec:
        command:
          - bash
          - -c
          - |
            curl -X POST 127.0.0.1:5555/se/grid/node/drain --header 'X-REGISTRATION-SECRET;' && \
            while curl 127.0.0.1:5555/status; do sleep 1; done;

# Configuration for chrome nodes
chromeNode:
  # Enable chrome nodes
  enabled: true

  # NOTE: Only used when autoscaling.enabled is false
  # Enable creation of Deployment
  # true (default) - if you want long living pods
  # false - for provisioning your own custom type such as Jobs
  deploymentEnabled: true

  # Number of chrome nodes
  replicas: 1
  # imageRegistry: selenium
  # Image of chrome nodes
  imageName: node-chrome
  # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag)
  # imageTag: 4.16.1-20231212
  # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
  imagePullPolicy: IfNotPresent
  # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
  imagePullSecret: ""

  # Port list to enable on container
  ports:
    - 5555
  # Selenium port (spec.ports[0].targetPort in kubernetes service)
  seleniumPort: 5900
  # Selenium port exposed in service (spec.ports[0].port in kubernetes service)
  seleniumServicePort: 6900
  # Annotations for chrome-node pods
  annotations: {}
  # Labels for chrome-node pods
  labels: {}
  # Resources for chrome-node container
  resources:
    requests:
      memory: "1300Mi"
      cpu: "1"
    limits:
      memory: "1300Mi"
      cpu: "1"
  # SecurityContext for chrome-node container
  securityContext: {}
  # Tolerations for chrome-node pods
  tolerations: []
  # Node selector for chrome-node pods
  nodeSelector: {}
  # Custom host aliases for chrome nodes
  hostAliases:
    # - ip: "198.51.100.0"
    #   hostnames:
    #     - "example.com"
    #     - "example.net"
    # - ip: "203.0.113.0"
    #   hostnames:
    #     - "example.org"
  # Custom environment variables for chrome nodes
  extraEnvironmentVariables:
    - name: SE_SESSION_REQUEST_TIMEOUT
      value: "5400"
    - name: SE_SESSION_RETRY_INTERVAL
      value: "15"
    - name: SE_NODE_SESSION_TIMEOUT
      value: "5400"
    #- name: SE_DRAIN_AFTER_SESSION_COUNT
    #  value: "1"  
    # - name: SE_JAVA_OPTS
    #   value: "-Xmx512m"
    # - name:
    #   valueFrom:
    #     secretKeyRef:
    #       name: secret-name
    #       key: secret-key
  # Custom environment variables by sourcing entire configMap, Secret, etc. for chrome nodes
  extraEnvFrom:
    # - configMapRef:
    #   name: proxy-settings
    # - secretRef:
    #   name: mysecret
  # Service configuration
  service:
    # Create a service for node
    enabled: true
    # Service type
    type: ClusterIP
    # Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)
    loadBalancerIP: ""
    # Extra ports exposed in node service
    ports:
    # - name: node-port
    #   port: 5555
    #   targetPort: 5555
    # Custom annotations for service
    annotations: {}
  # Size limit for DSH volume mounted in container (if not set, default is "1300Mi")
  dshmVolumeSizeLimit: 1300Mi
  # Priority class name for chrome-node pods
  priorityClassName: ""

  # Wait for pod startup
  startupProbe: {}
    # httpGet:
    #   path: /status
    #   port: 5555
    # failureThreshold: 120
    # periodSeconds: 5

  # Liveness probe settings
  livenessProbe: {}

  # Time to wait for pod termination
  terminationGracePeriodSeconds: 30
  lifecycle: {}
  extraVolumeMounts: []
  # - name: my-extra-volume
  #   mountPath: /home/seluser/Downloads

  extraVolumes: []
  # - name: my-extra-volume
  #   emptyDir: {}
  # - name: my-extra-volume-from-pvc
  #   persistentVolumeClaim:
  #     claimName: my-pv-claim

  # Override the scaled options for chrome nodes
  # scaledOptions:
  # scaledJobOptions:
  # scaledObjectOptions:
  hpa:
    url: '{{ include "seleniumGrid.graphqlURL" . }}'
    browserName: chrome
    # browserVersion: '91.0' # Optional. Only required when supporting multiple versions of browser in your Selenium Grid.
    unsafeSsl: 'true'  # Optional

  # It is used to add a sidecars proxy in the same pod of the browser node.
  # It means it will add a new container to the deployment itself.
  # It should be set using the --set-json option
  sidecars: []


# Configuration for firefox nodes
firefoxNode:
  # Enable firefox nodes
  enabled: false

  # NOTE: Only used when autoscaling.enabled is false
  # Enable creation of Deployment
  # true (default) - if you want long living pods
  # false - for provisioning your own custom type such as Jobs
  deploymentEnabled: true

  # Number of firefox nodes
  replicas: 1
  # imageRegistry: selenium
  # Image of firefox nodes
  imageName: node-firefox
  # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag)
  # imageTag: 4.16.1-20231212
  # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
  imagePullPolicy: IfNotPresent
  # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
  imagePullSecret: ""

  # Port list to enable on container
  ports:
    - 5555
  # Selenium port (spec.ports[0].targetPort in kubernetes service)
  seleniumPort: 5900
  # Selenium port exposed in service (spec.ports[0].port in kubernetes service)
  seleniumServicePort: 6900
  # Annotations for firefox-node pods
  annotations: {}
  # Labels for firefox-node pods
  labels: {}
  # Tolerations for firefox-node pods
  tolerations: []
  # Node selector for firefox-node pods
  nodeSelector: {}
  # Resources for firefox-node container
  resources:
    requests:
      memory: "1300Mi"
      cpu: "1"
    limits:
      memory: "1300Mi"
      cpu: "1"
  # SecurityContext for firefox-node container
  securityContext: {}
  # Custom host aliases for firefox nodes
  hostAliases:
    # - ip: "198.51.100.0"
    #   hostnames:
    #     - "example.com"
    #     - "example.net"
    # - ip: "203.0.113.0"
    #   hostnames:
    #     - "example.org"
  # Custom environment variables for firefox nodes
  extraEnvironmentVariables:
    # - name: SE_JAVA_OPTS
    #   value: "-Xmx512m"
    # - name:
    #   valueFrom:
    #     secretKeyRef:
    #       name: secret-name
    #       key: secret-key
  # Custom environment variables by sourcing entire configMap, Secret, etc. for firefox nodes
  extraEnvFrom:
    # - configMapRef:
    #   name: proxy-settings
    # - secretRef:
    #   name: mysecret
  # Service configuration
  service:
    # Create a service for node
    enabled: true
    # Service type
    type: ClusterIP
    # Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)
    loadBalancerIP: ""
    # Extra ports exposed in node service
    ports:
    # - name: node-port
    #   port: 5555
    #   targetPort: 5555
    # Custom annotations for service
    annotations: {}
  # Size limit for DSH volume mounted in container (if not set, default is "1300Mi")
  dshmVolumeSizeLimit: 1300Mi
  # Priority class name for firefox-node pods
  priorityClassName: ""

  # Wait for pod startup
  startupProbe: {}
    # httpGet:
    #   path: /status
    #   port: 5555
    # failureThreshold: 120
    # periodSeconds: 5

  # Liveness probe settings
  livenessProbe: {}

  # Time to wait for pod termination
  terminationGracePeriodSeconds: 30
  lifecycle: {}
  extraVolumeMounts: []
  # - name: my-extra-volume
  #   mountPath: /home/seluser/Downloads

  extraVolumes: []
  # - name: my-extra-volume
  #   emptyDir: {}
  # - name: my-extra-volume-from-pvc
  #   persistentVolumeClaim:
  #     claimName: my-pv-claim

  # Override the scaled options for firefox nodes
  # scaledOptions:
  # scaledJobOptions:
  # scaledObjectOptions:
  hpa:
    url: '{{ include "seleniumGrid.graphqlURL" . }}'
    browserName: firefox

  # It is used to add a sidecars proxy in the same pod of the browser node.
  # It means it will add a new container to the deployment itself.
  # It should be set using the --set-json option
  sidecars: []

# Configuration for edge nodes
edgeNode:
  # Enable edge nodes
  enabled: false

  # NOTE: Only used when autoscaling.enabled is false
  # Enable creation of Deployment
  # true (default) - if you want long living pods
  # false - for provisioning your own custom type such as Jobs
  deploymentEnabled: true

  # Number of edge nodes
  replicas: 1
  # imageRegistry: selenium
  # Image of edge nodes
  imageName: node-edge
  # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag)
  # imageTag: 4.16.1-20231212
  # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
  imagePullPolicy: IfNotPresent
  # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
  imagePullSecret: ""

  ports:
    - 5555
  # Selenium port (spec.ports[0].targetPort in kubernetes service)
  seleniumPort: 5900
  # Selenium port exposed in service (spec.ports[0].port in kubernetes service)
  seleniumServicePort: 6900
  # Annotations for edge-node pods
  annotations: {}
  # Labels for edge-node pods
  labels: {}
  # Tolerations for edge-node pods
  tolerations: []
  # Node selector for edge-node pods
  nodeSelector: {}
  # Resources for edge-node container
  resources:
    requests:
      memory: "1300Mi"
      cpu: "1"
    limits:
      memory: "1300Mi"
      cpu: "1"
  # SecurityContext for edge-node container
  securityContext: {}
  # Custom host aliases for edge nodes
  hostAliases:
    # - ip: "198.51.100.0"
    #   hostnames:
    #     - "example.com"
    #     - "example.net"
    # - ip: "203.0.113.0"
    #   hostnames:
    #     - "example.org"
  # Custom environment variables for edge nodes
  extraEnvironmentVariables:
    # - name: SE_JAVA_OPTS
    #   value: "-Xmx512m"
    # - name:
    #   valueFrom:
    #     secretKeyRef:
    #       name: secret-name
    #       key: secret-key
  # Custom environment variables by sourcing entire configMap, Secret, etc. for edge nodes
  extraEnvFrom:
    # - configMapRef:
    #   name: proxy-settings
    # - secretRef:
    #   name: mysecret
  # Service configuration
  service:
    # Create a service for node
    enabled: true
    # Service type
    type: ClusterIP
    # Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)
    loadBalancerIP: ""
    # Extra ports exposed in node service
    ports:
    # - name: node-port
    #   port: 5555
    #   targetPort: 5555
    # Custom annotations for service
    annotations: {}
  # Size limit for DSH volume mounted in container (if not set, default is "1300Mi")
  dshmVolumeSizeLimit: 1300Mi
  # Priority class name for edge-node pods
  priorityClassName: ""

  # Wait for pod startup
  startupProbe: {}
    # httpGet:
    #   path: /status
    #   port: 5555
    # failureThreshold: 120
    # periodSeconds: 5

  # Liveness probe settings
  livenessProbe: {}

  # Time to wait for pod termination
  terminationGracePeriodSeconds: 30
  lifecycle: {}
  extraVolumeMounts: []
  # - name: my-extra-volume
  #   mountPath: /home/seluser/Downloads

  extraVolumes: []
  # - name: my-extra-volume
  #   emptyDir: {}
  # - name: my-extra-volume-from-pvc
  #   persistentVolumeClaim:
  #     claimName: my-pv-claim

  # Override the scaled options for edge nodes
  # scaledOptions:
  # scaledJobOptions:
  # scaledObjectOptions:
  hpa:
    url: '{{ include "seleniumGrid.graphqlURL" . }}'
    browserName: MicrosoftEdge
    sessionBrowserName: 'msedge'

  # It is used to add a sidecars proxy in the same pod of the browser node.
  # It means it will add a new container to the deployment itself.
  # It should be set using the --set-json option
  sidecars: []

videoRecorder:
  enabled: false
  # imageRegistry: selenium
  # Image of video recorder
  imageName: video
  # Image of video recorder
  # imageTag: ffmpeg-6.1-20231212
  # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
  imagePullPolicy: IfNotPresent
  # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)

  # What uploader to use. See .videRecorder.s3 for how to create a new one.
  # uploader: s3
  uploader: false
  # Where to upload the video file. Should be set to something like 's3://myvideobucket/'
  uploadDestinationPrefix: false

  ports:
  - 9000
  resources:
    requests:
      memory: "1300Mi"
      cpu: "1"
    limits:
      memory: "1300Mi"
      cpu: "1"
  extraEnvironmentVariables:
  # - name: SE_VIDEO_FOLDER
  #   value: /videos
  # Custom environment variables by sourcing entire configMap, Secret, etc. for video recorder.
  extraEnvFrom:
  # - configMapRef:
  #   name: proxy-settings
  # - secretRef:
  #   name: mysecret
  # Wait for pod startup
  terminationGracePeriodSeconds: 30

  # Wait for pod startup
  startupProbe: {}
  #   httpGet:
  #     path: /
  #     port: 9000
  #   failureThreshold: 120
  # periodSeconds: 5

  # Liveness probe settings
  livenessProbe: {}

  volume:
  # name:
  #   folder: video
  #   scripts: video-scripts
  # Custom video recorder back-end scripts (video.sh, video_ready.py, etc.) further by ConfigMap.
  # NOTE: For the mount point with the name "video", or "video-scripts", it will override the default. For other names, it will be appended.
  extraVolumeMounts: []
  # - name: video-scripts
  #   mountPath: /opt/bin/video.sh
  #   subPath: custom_video.sh
  # - name: video-scripts
  #   mountPath: /opt/bin/video_ready.py
  #   subPath: video_ready.py

  extraVolumes: []
  # - name: video-scripts
  #   configMap:
  #     name: my-video-scripts-cm
  #     defaultMode: 0500
  # - name: video
  #   persistentVolumeClaim:
  #     claimName: video-pv-claim

  # Container spec for the uploader if above it is defined as "uploader: s3"
  s3:
    imageName: public.ecr.aws/bitnami/aws-cli
    imageTag: "2"
    imagePullPolicy: IfNotPresent
    securityContext:
      runAsUser: 0
    command:
    - /bin/sh
    args:
    - -c
    - |
      while ! [ -p /videos/uploadpipe ]
      do
          echo Waiting for /videos/uploadpipe to be created
          sleep 1
      done
      echo Waiting for files to upload
      while read FILE DESTINATION < /videos/uploadpipe
      do
          if [ "$FILE" = "exit" ]
          then
              echo "$FILE"
              break
          else
              echo "Uploading $FILE to $DESTINATION"
              aws s3 cp --no-progress $FILE $DESTINATION
          fi
      done
    extraEnvironmentVariables:
    # - name: AWS_ACCESS_KEY_ID
    #   value: aws_access_key_id
    # - name: AWS_SECRET_ACCESS_KEY
    #   value: aws_secret_access_key
    # - name:
    #   valueFrom:
    #     secretKeyRef:
    #       name: secret-name
    #       key: secret-key

# Custom labels for k8s resources
customLabels: {}

Relevant log output

No specific log output

Operating System

Kubernetes

Docker Selenium version (image tag)

4.16.1-20231212

Selenium Grid chart version (chart version)

No response

GuillaumeFradet avatar Jan 08 '24 18:01 GuillaumeFradet

@GuillaumeFradet, thank you for creating this issue. We will troubleshoot it as soon as we can.


Info for maintainers

Triage this issue by using labels.

If information is missing, add a helpful comment and then I-issue-template label.

If the issue is a question, add the I-question label.

If the issue is valid but there is no time to troubleshoot it, consider adding the help wanted label.

If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C), add the applicable G-* label, and it will provide the correct link and auto-close the issue.

After troubleshooting the issue, please add the R-awaiting answer label.

Thank you!

github-actions[bot] avatar Jan 08 '24 18:01 github-actions[bot]

I saw in the chart YAML that the image tag is 4.16.1-20231212 but in screenshot chrome version is v115? With node chrome v115 (image tag < 4.16.1) I guess it could be going to the situation in https://github.com/SeleniumHQ/docker-selenium/issues/2045

VietND96 avatar Jan 08 '24 18:01 VietND96

Sorry the screenshot was from an other cluster where i use 4.11 and get the same problem.I tried again on the cluster where I have 4.16 and I have the same problem even though I have a version 120 of the browser. I'm going to test with a version 118. Capture d’écran du 2024-01-09 07-43-01

GuillaumeFradet avatar Jan 09 '24 06:01 GuillaumeFradet

Ah ok, can you do one more step that open tab Network in e.g Chrome DevTools to see the Websockets request URL and there status, something like image

VietND96 avatar Jan 09 '24 06:01 VietND96

I have this in DevTools Capture d’écran du 2024-01-09 08-05-16

GuillaumeFradet avatar Jan 09 '24 07:01 GuillaumeFradet

When i look into console i get this error .It certainly comes from this Capture d’écran du 2024-01-09 08-19-06

GuillaumeFradet avatar Jan 09 '24 07:01 GuillaumeFradet

Does your deployment have ingress upfront? if yes, can you try a trick by opening Grid URL with schema HTTPS to see how it behaves?

VietND96 avatar Jan 09 '24 07:01 VietND96

No sorry i don't have ingress upfront

GuillaumeFradet avatar Jan 09 '24 07:01 GuillaumeFradet

Yes, it looks similar the same behavior was reproduced here - https://github.com/SeleniumHQ/selenium/issues/13393#issuecomment-1878359615 Even I also tried the same in my local but didn't see that error message. Will let you know it we have any clue

VietND96 avatar Jan 09 '24 07:01 VietND96

I see that the issue you mentioned has just been marked as fixed, which means that the problem has been solved?

GuillaumeFradet avatar Jan 09 '24 10:01 GuillaumeFradet

We mark them as fixed then the code has landed, however we still need to do a new release.

diemol avatar Jan 09 '24 10:01 diemol

I see that the issue you mentioned has just been marked as fixed, which means that the problem has been solved?

Ah, the background is the issue relates to the Grid with --sub-path not opening sessions Websockets (novnc, cdp, etc.) correctly in the upstream repo, which was fixed. While trying a test image to confirm, he reported that While the WebSocket connection is successful, it seems to close immediately if the Duration is less than 10 seconds. It's not exact, but it appears that only after exceeding about 10 seconds -> with the same error could be seen noVNC requires a secure context (TLS). Expect crashes! in console -> If any clues relate to this error, we will continue discussing it here

VietND96 avatar Jan 09 '24 10:01 VietND96

While waiting for the patch to be deployed, I tried to disable noVnc. I did see the start_vnc option with the value false. But by setting it like that I still get the record. Should I set it differently? That would allow me to use the service while waiting for the next version.


chromeNode:
  # Enable chrome nodes
  enabled: true
  vncEnabled: false
  # NOTE: Only used when autoscaling.enabled is false
  # Enable creation of Deployment
  # true (default) - if you want long living pods
  # false - for provisioning your own custom type such as Jobs
  deploymentEnabled: true

  # Number of chrome nodes
  replicas: 1
  # imageRegistry: selenium
  # Image of chrome nodes
  imageName: node-chrome
  # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag)
  # imageTag: 4.16.1-20231212
  # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
  imagePullPolicy: IfNotPresent
  # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
  imagePullSecret: ""

  # Port list to enable on container
  ports:
    - 5555
  # Selenium port (spec.ports[0].targetPort in kubernetes service)
  seleniumPort: 5900
  # Selenium port exposed in service (spec.ports[0].port in kubernetes service)
  seleniumServicePort: 6900
  # Annotations for chrome-node pods
  annotations: {}
  # Labels for chrome-node pods
  labels: {}
  # Resources for chrome-node container
  resources:
    requests:
      memory: "1300Mi"
      cpu: "1"
    limits:
      memory: "1300Mi"
      cpu: "1"
  # SecurityContext for chrome-node container
  securityContext: {}
  # Tolerations for chrome-node pods
  tolerations: []
  # Node selector for chrome-node pods
  nodeSelector: {}
  # Custom host aliases for chrome nodes
  hostAliases:
    # - ip: "198.51.100.0"
    #   hostnames:
    #     - "example.com"
    #     - "example.net"
    # - ip: "203.0.113.0"
    #   hostnames:
    #     - "example.org"
  # Custom environment variables for chrome nodes
  extraEnvironmentVariables:
    - name: SE_SESSION_REQUEST_TIMEOUT
      value: "5400"
    - name: SE_SESSION_RETRY_INTERVAL
      value: "15"
    - name: SE_NODE_SESSION_TIMEOUT
      value: "5400"
    - name: SE_START_VNC
      value: "false"
    #- name: SE_DRAIN_AFTER_SESSION_COUNT
    #  value: "1"  
    # - name: SE_JAVA_OPTS
    #   value: "-Xmx512m"
    # - name:
    #   valueFrom:
    #     secretKeyRef:
    #       name: secret-name
    #       key: secret-key

GuillaumeFradet avatar Jan 09 '24 14:01 GuillaumeFradet

If disable noVNC, I think it should be SE_START_NO_VNC

VietND96 avatar Jan 09 '24 15:01 VietND96

Ok I have set it too but it still seems activated as you can see

`kubectl get scaledjob selenium-chrome-node -n selenium-grid -o yaml apiVersion: keda.sh/v1alpha1 kind: ScaledJob metadata: annotations: helm.sh/hook: post-install,post-upgrade creationTimestamp: "2024-01-10T06:48:04Z" finalizers:

  • finalizer.keda.sh generation: 2 labels: app: selenium-chrome-node app.kubernetes.io/component: selenium-grid-4.15.0-20231129 app.kubernetes.io/instance: selenium-grid app.kubernetes.io/managed-by: helm app.kubernetes.io/name: selenium-chrome-node app.kubernetes.io/version: 4.15.0-20231129 helm.sh/chart: selenium-grid-0.25.3 name: selenium-chrome-node namespace: selenium-grid resourceVersion: "24239423042" uid: ab97994b-3271-4ada-bfe1-72ccd9151239 spec: failedJobsHistoryLimit: 0 jobTargetRef: backoffLimit: 0 completions: 1 parallelism: 1 template: metadata: annotations: checksum/event-bus-configmap: 424bdd190f187b951ea19a9d9c8ae098984e27a9dc9a7006186ad02ee5233236 creationTimestamp: null labels: app: selenium-chrome-node app.kubernetes.io/component: selenium-grid-4.15.0-20231129 app.kubernetes.io/instance: selenium-grid app.kubernetes.io/managed-by: helm app.kubernetes.io/name: selenium-chrome-node app.kubernetes.io/version: 4.15.0-20231129 helm.sh/chart: selenium-grid-0.25.3 spec: containers: - env: - name: SE_SESSION_REQUEST_TIMEOUT value: "5400" - name: SE_SESSION_RETRY_INTERVAL value: "15" - name: SE_NODE_SESSION_TIMEOUT value: "5400" - name: SE_START_VNC value: "false" - name: SE_START_NO_VNC value: "false" envFrom: - configMapRef: name: selenium-event-bus-config - configMapRef: name: selenium-node-config image: selenium/node-chrome:4.16.0-20231206 imagePullPolicy: IfNotPresent name: selenium-chrome-node ports: - containerPort: 5555 protocol: TCP resources: limits: cpu: "1" memory: 1300Mi requests: cpu: "1" memory: 1300Mi volumeMounts: - mountPath: /dev/shm name: dshm restartPolicy: Never serviceAccount: selenium-serviceaccount serviceAccountName: selenium-serviceaccount terminationGracePeriodSeconds: 30 volumes: - emptyDir: medium: Memory sizeLimit: 1300Mi name: dshm maxReplicaCount: 500 minReplicaCount: 0 pollingInterval: 10 rollout: {} scalingStrategy: strategy: default successfulJobsHistoryLimit: 0 triggers:
  • metadata: browserName: chrome unsafeSsl: "true" url: http://xxxxx:[email protected]:4444/graphql type: selenium-grid status: conditions:
  • message: ScaledJob is defined correctly and is ready to scaling reason: ScaledJobReady status: "True" type: Ready
  • message: Scaling is performed because triggers are active reason: ScalerActive status: "True" type: Active
  • status: Unknown type: Fallback
  • status: Unknown type: Paused ` Capture d’écran du 2024-01-10 07-58-31

GuillaumeFradet avatar Jan 10 '24 06:01 GuillaumeFradet

Ah ok, misunderstood your requirement. Those 2 ENV are used to disable the process in containers only. For the Grid UI, e.g you want to disable the recorder button or prevent the user from accessing the live preview of a session, I guess it does not support. That feature needs to be implemented on the upstream repository. @diemol, correct me if any missing

VietND96 avatar Jan 10 '24 07:01 VietND96

In fact I wanted to see if disabling it, would remove the error since it seems to come from NoVnc.Ok, I'll keep looking for another solution if it's not supported.

GuillaumeFradet avatar Jan 10 '24 07:01 GuillaumeFradet

You need to disable SE_START_XVFB and then the video icon will not show up.

diemol avatar Jan 10 '24 08:01 diemol

Ok thanks, it does hide the camera preventing vision, but the browser still crashes after several minutes not finishing the process.

GuillaumeFradet avatar Jan 10 '24 10:01 GuillaumeFradet

but the browser still crashes after several minutes not finishing the process.

What does this mean in detail? Can you describe this better please?

diemol avatar Jan 10 '24 10:01 diemol

I used nightly image tag to reproduce. The error websock.js:231 WebSocket connection to 'wss://ci.ndviet.org/selenium/session/d84db2d3d1b2b67c0f6a2eadb13ebfea/se/vnc' failed: Close received after close could be seen in the first time opened and page is blank. Probably I enabled VNC_PASSWORD hence this flakiness comes, still checking. Then I clicked the Close button and opened it again, it could connect successfully and the preview kept alive until the session was closed. I didn't see it closed after a short time image Can you try the nightly image also and confirm?

VietND96 avatar Jan 10 '24 10:01 VietND96

Capture d’écran du 2024-01-10 11-55-09 I launch my script which starts the navigation it goes on several pages, all goes well on the first ones then after a few minutes I have this result (as on the capture).My script is stopped and cannot even make a capture of the problem as the log of my script shows it. Move to next URL... Command error after processing: 4 minutes, 3 seconds Screenshot failed Failed to exit browser

I get the same result by setting the noVnc , vnc and start_xvfb options to false @diemol

Ok I'll try with the nightly @vietnd96

GuillaumeFradet avatar Jan 10 '24 11:01 GuillaumeFradet

Those flags enable or disable VNC.

Can you share the Grid log and the test log?

diemol avatar Jan 10 '24 11:01 diemol

Here are the node logs for my last test:

2024-01-10 12:44:12,695 INFO Included extra file "/etc/supervisor/conf.d/selenium.conf" during parsing
2024-01-10 12:44:12,698 INFO RPC interface 'supervisor' initialized
2024-01-10 12:44:12,698 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2024-01-10 12:44:12,699 INFO supervisord started with pid 8
2024-01-10 12:44:13,703 INFO spawned: 'xvfb' with pid 9
2024-01-10 12:44:13,707 INFO spawned: 'vnc' with pid 10
2024-01-10 12:44:13,712 INFO spawned: 'novnc' with pid 11
2024-01-10 12:44:13,717 INFO spawned: 'selenium-node' with pid 14
2024-01-10 12:44:13,722 INFO success: selenium-node entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
Appending Selenium options: --session-timeout 5400
Generating Selenium Config
Configuring server...
Setting up SE_NODE_HOST...
Setting up SE_NODE_PORT...
Tracing is disabled
Selenium Grid Node configuration: 
[events]
publish = "tcp://selenium-hub:4442"
subscribe = "tcp://selenium-hub:4443"

[node]
grid-url = "http://xxxxx:[email protected]:4444"
session-timeout = "5400"
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": "120.0", "platformName": "Linux", "goog:chromeOptions": {"binary": "/usr/bin/google-chrome"}}'
max-sessions = 1

Starting Selenium Grid Node...
2024-01-10 12:44:14,761 INFO success: xvfb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-01-10 12:44:14,761 INFO success: vnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-01-10 12:44:14,761 INFO success: novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
12:44:14.878 INFO [LoggingOptions.configureLogEncoding] - Using the system default encoding
12:44:14.883 INFO [OpenTelemetryTracer.createTracer] - Using OpenTelemetry for tracing
12:44:15.081 INFO [UnboundZmqEventBus.<init>] - Connecting to tcp://selenium-hub:4442 and tcp://selenium-hub:4443
12:44:15.189 INFO [UnboundZmqEventBus.<init>] - Sockets created
12:44:16.191 INFO [UnboundZmqEventBus.<init>] - Event bus ready
12:44:16.293 INFO [NodeServer.createHandlers] - Reporting self as: http://100.64.48.104:5555
12:44:16.378 INFO [NodeOptions.getSessionFactories] - Detected 1 available processors
12:44:16.466 INFO [NodeOptions.report] - Adding chrome for {"browserName": "chrome","browserVersion": "120.0","goog:chromeOptions": {"binary": "\u002fusr\u002fbin\u002fgoogle-chrome"},"platformName": "linux","se:noVncPort": 7900,"se:vncEnabled": true} 1 times
12:44:16.483 INFO [Node.<init>] - Binding additional locator mechanisms: relative
12:44:16.704 INFO [NodeServer$1.start] - Starting registration process for Node http://100.64.48.104:5555
12:44:16.705 INFO [NodeServer.execute] - Started Selenium node 4.17.0-SNAPSHOT (revision 111086d): http://100.64.48.104:5555
12:44:16.713 INFO [NodeServer$1.lambda$start$1] - Sending registration event...
12:44:16.985 INFO [NodeServer.lambda$createHandlers$2] - Node has been added
12:44:18.566 INFO [LocalNode.checkSessionCount] - Draining Node, configured sessions value (1) has been reached.
12:44:18.574 INFO [LocalNode.newSession] - Session created by the Node. Id: 3d477976dc13edf1b0fc49b6987c3365, Caps: Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 120.0.6099.216, chrome: {chromedriverVersion: 120.0.6099.109 (3419140ab66..., userDataDir: /tmp/.org.chromium.Chromium...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:42579}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: Proxy(), se:bidiEnabled: false, se:cdp: ws://admin:rmdscrap@seleniu..., se:cdpVersion: 120.0.6099.216, se:vnc: ws://admin:rmdscrap@seleniu..., se:vncEnabled: true, se:vncLocalAddress: ws://100.64.48.104:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
12:44:23.972 INFO [ProxyNodeWebsockets.createWsEndPoint] - Establishing connection to ws://100.64.48.104:7900
12:44:27.398 INFO [ProxyNodeWebsockets.createWsEndPoint] - Establishing connection to ws://100.64.48.104:7900
12:44:30.828 INFO [ProxyNodeWebsockets.createWsEndPoint] - Establishing connection to ws://100.64.48.104:7900

An test log : Starting command between "2024-01-17" and "2024-02-22" (36 days) Browser session ID is 3d477976dc13edf1b0fc49b6987c3365 Day 1/36 (2024-01-17) Wait for the results... Results are here! Gonna take the good result Can take the good result Day process time: 35 seconds Day 2/36 (2024-01-18) Wait for the results... Results are here! Gonna take the good result Can take the good result Day process time: 7 seconds ..... Day 20/36 (2024-02-05) Wait for the results... Results are here! Gonna take the good result Can take the good result Day process time: 1 minute, 47 seconds Day 21/36 (2024-02-06) Move to next day detail page URL... Command error after processing: 6 minutes, 52 seconds Screenshot failed Failed to exit browser

@diemol
I'm doing some more tests on the nigthly version before I get back to you, but it seems to do the same thing. @vietnd96 I don't understand why, since last week it worked perfectly.

GuillaumeFradet avatar Jan 10 '24 13:01 GuillaumeFradet

The Grid log seems incomplete.

diemol avatar Jan 10 '24 13:01 diemol

Although it was the entire log of the pod containing the Chrome node, I have this coming from the pod containing the hub. The HTTP connect time out error is raised when the browser is cut off and the connection becomes impossible.

13:49:19.780 WARN [SeleniumSpanExporter$1.lambda$export$1] - Unable to execute request for an existing session: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
Build info: version: '4.17.0-SNAPSHOT', revision: '111086d'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'
Driver info: driver.version: unknown
13:49:19.780 WARN [SeleniumSpanExporter$1.lambda$export$3] - {"traceId": "48c27d204ea997d745b37e7ba962653a","eventTime": 1704894559778843957,"eventName": "exception","attributes": {"exception.message": "Unable to execute request for an existing session: java.net.http.HttpConnectTimeoutException: HTTP connect timed out\nBuild info: version: '4.17.0-SNAPSHOT', revision: '111086d'\nSystem info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'\nDriver info: driver.version: unknown","exception.stacktrace": "org.openqa.selenium.TimeoutException: java.net.http.HttpConnectTimeoutException: HTTP connect timed out\nBuild info: version: '4.17.0-SNAPSHOT', revision: '111086d'\nSystem info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'\nDriver info: driver.version: unknown\n\tat org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:392)\n\tat org.openqa.selenium.remote.http.RetryRequest.lambda$apply$5(RetryRequest.java:81)\n\tat dev.failsafe.Functions.lambda$toCtxSupplier$11(Functions.java:243)\n\tat dev.failsafe.Functions.lambda$get$0(Functions.java:46)\n\tat dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)\n\tat dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)\n\tat dev.failsafe.internal.FallbackExecutor.lambda$apply$0(FallbackExecutor.java:51)\n\tat dev.failsafe.SyncExecutionImpl.executeSync(SyncExecutionImpl.java:187)\n\tat dev.failsafe.FailsafeExecutor.call(FailsafeExecutor.java:376)\n\tat dev.failsafe.FailsafeExecutor.get(FailsafeExecutor.java:112)\n\tat org.openqa.selenium.remote.http.RetryRequest.lambda$apply$6(RetryRequest.java:81)\n\tat org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.java:42)\n\tat org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)\n\tat org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:358)\n\tat org.openqa.selenium.remote.tracing.TracedHttpClient.execute(TracedHttpClient.java:54)\n\tat org.openqa.selenium.grid.web.ReverseProxyHandler.execute(ReverseProxyHandler.java:90)\n\tat org.openqa.selenium.grid.router.HandleSession.execute(HandleSession.java:181)\n\tat org.openqa.selenium.remote.http.Route$PredicatedRoute.handle(Route.java:383)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.grid.router.Router.execute(Router.java:87)\n\tat org.openqa.selenium.grid.web.EnsureSpecCompliantResponseHeaders.lambda$apply$0(EnsureSpecCompliantResponseHeaders.java:34)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$NestedRoute.handle(Route.java:270)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.grid.security.BasicAuthenticationFilter.lambda$apply$0(BasicAuthenticationFilter.java:54)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.AddWebDriverSpecHeaders.lambda$apply$0(AddWebDriverSpecHeaders.java:35)\n\tat org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.netty.server.SeleniumHandler.lambda$channelRead0$0(SeleniumHandler.java:44)\n\tat java.base\u002fjava.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base\u002fjava.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base\u002fjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base\u002fjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base\u002fjava.lang.Thread.run(Thread.java:829)\nCaused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:512)\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.getExceptionalCF(MultiExchange.java:459)\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.lambda$responseAsyncImpl$7(MultiExchange.java:386)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2094)\n\tat java.net.http\u002fjdk.internal.net.http.Http1Exchange.lambda$cancelImpl$9(Http1Exchange.java:482)\n\t... 3 more\nCaused by: java.net.ConnectException: HTTP connect timed out\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:513)\n\t... 10 more\n","exception.type": "org.openqa.selenium.TimeoutException","http.flavor": 1,"http.handler_class": "org.openqa.selenium.grid.router.HandleSession","http.host": "195.154.74.229:4444","http.method": "POST","http.request_content_length": "72","http.scheme": "HTTP","http.target": "\u002fsession\u002f46544a19c5852c24b27e383b9ddc6329\u002felements","session.id": "46544a19c5852c24b27e383b9ddc6329"}}

13:49:49.817 WARN [SeleniumSpanExporter$1.lambda$export$1] - org.openqa.selenium.TimeoutException: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
Build info: version: '4.17.0-SNAPSHOT', revision: '111086d'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'
Driver info: driver.version: unknown
	at org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:392)
	at org.openqa.selenium.remote.http.RetryRequest.lambda$apply$5(RetryRequest.java:81)
	at dev.failsafe.Functions.lambda$toCtxSupplier$11(Functions.java:243)
	at dev.failsafe.Functions.lambda$get$0(Functions.java:46)
	at dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)
	at dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)
	at dev.failsafe.internal.FallbackExecutor.lambda$apply$0(FallbackExecutor.java:51)
	at dev.failsafe.SyncExecutionImpl.executeSync(SyncExecutionImpl.java:187)
	at dev.failsafe.FailsafeExecutor.call(FailsafeExecutor.java:376)
	at dev.failsafe.FailsafeExecutor.get(FailsafeExecutor.java:112)
	at org.openqa.selenium.remote.http.RetryRequest.lambda$apply$6(RetryRequest.java:81)
	at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.java:42)
	at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)
	at org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:358)
	at org.openqa.selenium.remote.tracing.TracedHttpClient.execute(TracedHttpClient.java:54)
	at org.openqa.selenium.grid.web.ReverseProxyHandler.execute(ReverseProxyHandler.java:90)
	at org.openqa.selenium.grid.router.HandleSession.execute(HandleSession.java:181)
	at org.openqa.selenium.remote.http.Route$PredicatedRoute.handle(Route.java:383)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.grid.router.Router.execute(Router.java:87)
	at org.openqa.selenium.grid.web.EnsureSpecCompliantResponseHeaders.lambda$apply$0(EnsureSpecCompliantResponseHeaders.java:34)
	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$NestedRoute.handle(Route.java:270)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.grid.security.BasicAuthenticationFilter.lambda$apply$0(BasicAuthenticationFilter.java:54)
	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.AddWebDriverSpecHeaders.lambda$apply$0(AddWebDriverSpecHeaders.java:35)
	at org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)
	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
	at org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)
	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
	at org.openqa.selenium.netty.server.SeleniumHandler.lambda$channelRead0$0(SeleniumHandler.java:44)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
	at java.net.http/jdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:512)
	at java.net.http/jdk.internal.net.http.MultiExchange.getExceptionalCF(MultiExchange.java:459)
	at java.net.http/jdk.internal.net.http.MultiExchange.lambda$responseAsyncImpl$7(MultiExchange.java:386)
	at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
	at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2094)
	at java.net.http/jdk.internal.net.http.Http1Exchange.lambda$cancelImpl$9(Http1Exchange.java:482)
	... 3 more
Caused by: java.net.ConnectException: HTTP connect timed out
	at java.net.http/jdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:513)
	... 10 more

13:49:49.817 WARN [SeleniumSpanExporter$1.lambda$export$1] - Unable to execute request for an existing session: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
Build info: version: '4.17.0-SNAPSHOT', revision: '111086d'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'
Driver info: driver.version: unknown
13:49:49.817 WARN [SeleniumSpanExporter$1.lambda$export$3] - {"traceId": "b73792621e3f48baf63789f7a0077dca","eventTime": 1704894589816912064,"eventName": "exception","attributes": {"exception.message": "Unable to execute request for an existing session: java.net.http.HttpConnectTimeoutException: HTTP connect timed out\nBuild info: version: '4.17.0-SNAPSHOT', revision: '111086d'\nSystem info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'\nDriver info: driver.version: unknown","exception.stacktrace": "org.openqa.selenium.TimeoutException: java.net.http.HttpConnectTimeoutException: HTTP connect timed out\nBuild info: version: '4.17.0-SNAPSHOT', revision: '111086d'\nSystem info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'\nDriver info: driver.version: unknown\n\tat org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:392)\n\tat org.openqa.selenium.remote.http.RetryRequest.lambda$apply$5(RetryRequest.java:81)\n\tat dev.failsafe.Functions.lambda$toCtxSupplier$11(Functions.java:243)\n\tat dev.failsafe.Functions.lambda$get$0(Functions.java:46)\n\tat dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)\n\tat dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)\n\tat dev.failsafe.internal.FallbackExecutor.lambda$apply$0(FallbackExecutor.java:51)\n\tat dev.failsafe.SyncExecutionImpl.executeSync(SyncExecutionImpl.java:187)\n\tat dev.failsafe.FailsafeExecutor.call(FailsafeExecutor.java:376)\n\tat dev.failsafe.FailsafeExecutor.get(FailsafeExecutor.java:112)\n\tat org.openqa.selenium.remote.http.RetryRequest.lambda$apply$6(RetryRequest.java:81)\n\tat org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.java:42)\n\tat org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)\n\tat org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:358)\n\tat org.openqa.selenium.remote.tracing.TracedHttpClient.execute(TracedHttpClient.java:54)\n\tat org.openqa.selenium.grid.web.ReverseProxyHandler.execute(ReverseProxyHandler.java:90)\n\tat org.openqa.selenium.grid.router.HandleSession.execute(HandleSession.java:181)\n\tat org.openqa.selenium.remote.http.Route$PredicatedRoute.handle(Route.java:383)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.grid.router.Router.execute(Router.java:87)\n\tat org.openqa.selenium.grid.web.EnsureSpecCompliantResponseHeaders.lambda$apply$0(EnsureSpecCompliantResponseHeaders.java:34)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$NestedRoute.handle(Route.java:270)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.grid.security.BasicAuthenticationFilter.lambda$apply$0(BasicAuthenticationFilter.java:54)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.AddWebDriverSpecHeaders.lambda$apply$0(AddWebDriverSpecHeaders.java:35)\n\tat org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.netty.server.SeleniumHandler.lambda$channelRead0$0(SeleniumHandler.java:44)\n\tat java.base\u002fjava.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base\u002fjava.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base\u002fjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base\u002fjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base\u002fjava.lang.Thread.run(Thread.java:829)\nCaused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:512)\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.getExceptionalCF(MultiExchange.java:459)\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.lambda$responseAsyncImpl$7(MultiExchange.java:386)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2094)\n\tat java.net.http\u002fjdk.internal.net.http.Http1Exchange.lambda$cancelImpl$9(Http1Exchange.java:482)\n\t... 3 more\nCaused by: java.net.ConnectException: HTTP connect timed out\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:513)\n\t... 10 more\n","exception.type": "org.openqa.selenium.TimeoutException","http.flavor": 1,"http.handler_class": "org.openqa.selenium.grid.router.HandleSession","http.host": "195.154.74.229:4444","http.method": "POST","http.request_content_length": "698","http.scheme": "HTTP","http.target": "\u002fsession\u002f46544a19c5852c24b27e383b9ddc6329\u002furl","session.id": "46544a19c5852c24b27e383b9ddc6329"}}

13:50:19.856 WARN [SeleniumSpanExporter$1.lambda$export$1] - org.openqa.selenium.TimeoutException: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
Build info: version: '4.17.0-SNAPSHOT', revision: '111086d'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'
Driver info: driver.version: unknown
	at org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:392)
	at org.openqa.selenium.remote.http.RetryRequest.lambda$apply$5(RetryRequest.java:81)
	at dev.failsafe.Functions.lambda$toCtxSupplier$11(Functions.java:243)
	at dev.failsafe.Functions.lambda$get$0(Functions.java:46)
	at dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)
	at dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)
	at dev.failsafe.internal.FallbackExecutor.lambda$apply$0(FallbackExecutor.java:51)
	at dev.failsafe.SyncExecutionImpl.executeSync(SyncExecutionImpl.java:187)
	at dev.failsafe.FailsafeExecutor.call(FailsafeExecutor.java:376)
	at dev.failsafe.FailsafeExecutor.get(FailsafeExecutor.java:112)
	at org.openqa.selenium.remote.http.RetryRequest.lambda$apply$6(RetryRequest.java:81)
	at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.java:42)
	at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)
	at org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:358)
	at org.openqa.selenium.remote.tracing.TracedHttpClient.execute(TracedHttpClient.java:54)
	at org.openqa.selenium.grid.web.ReverseProxyHandler.execute(ReverseProxyHandler.java:90)
	at org.openqa.selenium.grid.router.HandleSession.execute(HandleSession.java:181)
	at org.openqa.selenium.remote.http.Route$PredicatedRoute.handle(Route.java:383)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.grid.router.Router.execute(Router.java:87)
	at org.openqa.selenium.grid.web.EnsureSpecCompliantResponseHeaders.lambda$apply$0(EnsureSpecCompliantResponseHeaders.java:34)
	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$NestedRoute.handle(Route.java:270)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.grid.security.BasicAuthenticationFilter.lambda$apply$0(BasicAuthenticationFilter.java:54)
	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.AddWebDriverSpecHeaders.lambda$apply$0(AddWebDriverSpecHeaders.java:35)
	at org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)
	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
	at org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)
	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
	at org.openqa.selenium.netty.server.SeleniumHandler.lambda$channelRead0$0(SeleniumHandler.java:44)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
	at java.net.http/jdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:512)
	at java.net.http/jdk.internal.net.http.MultiExchange.getExceptionalCF(MultiExchange.java:459)
	at java.net.http/jdk.internal.net.http.MultiExchange.lambda$responseAsyncImpl$7(MultiExchange.java:386)
	at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
	at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2094)
	at java.net.http/jdk.internal.net.http.Http1Exchange.lambda$cancelImpl$9(Http1Exchange.java:482)
	... 3 more
Caused by: java.net.ConnectException: HTTP connect timed out
	at java.net.http/jdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:513)
	... 10 more

13:50:19.856 WARN [SeleniumSpanExporter$1.lambda$export$1] - Unable to execute request for an existing session: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
Build info: version: '4.17.0-SNAPSHOT', revision: '111086d'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'
Driver info: driver.version: unknown
13:50:19.856 WARN [SeleniumSpanExporter$1.lambda$export$3] - {"traceId": "84bf58116ba776f6b5ebc71503539fe6","eventTime": 1704894619855159595,"eventName": "exception","attributes": {"exception.message": "Unable to execute request for an existing session: java.net.http.HttpConnectTimeoutException: HTTP connect timed out\nBuild info: version: '4.17.0-SNAPSHOT', revision: '111086d'\nSystem info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'\nDriver info: driver.version: unknown","exception.stacktrace": "org.openqa.selenium.TimeoutException: java.net.http.HttpConnectTimeoutException: HTTP connect timed out\nBuild info: version: '4.17.0-SNAPSHOT', revision: '111086d'\nSystem info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'\nDriver info: driver.version: unknown\n\tat org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:392)\n\tat org.openqa.selenium.remote.http.RetryRequest.lambda$apply$5(RetryRequest.java:81)\n\tat dev.failsafe.Functions.lambda$toCtxSupplier$11(Functions.java:243)\n\tat dev.failsafe.Functions.lambda$get$0(Functions.java:46)\n\tat dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)\n\tat dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)\n\tat dev.failsafe.internal.FallbackExecutor.lambda$apply$0(FallbackExecutor.java:51)\n\tat dev.failsafe.SyncExecutionImpl.executeSync(SyncExecutionImpl.java:187)\n\tat dev.failsafe.FailsafeExecutor.call(FailsafeExecutor.java:376)\n\tat dev.failsafe.FailsafeExecutor.get(FailsafeExecutor.java:112)\n\tat org.openqa.selenium.remote.http.RetryRequest.lambda$apply$6(RetryRequest.java:81)\n\tat org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.java:42)\n\tat org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)\n\tat org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:358)\n\tat org.openqa.selenium.remote.tracing.TracedHttpClient.execute(TracedHttpClient.java:54)\n\tat org.openqa.selenium.grid.web.ReverseProxyHandler.execute(ReverseProxyHandler.java:90)\n\tat org.openqa.selenium.grid.router.HandleSession.execute(HandleSession.java:181)\n\tat org.openqa.selenium.remote.http.Route$PredicatedRoute.handle(Route.java:383)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.grid.router.Router.execute(Router.java:87)\n\tat org.openqa.selenium.grid.web.EnsureSpecCompliantResponseHeaders.lambda$apply$0(EnsureSpecCompliantResponseHeaders.java:34)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$NestedRoute.handle(Route.java:270)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.grid.security.BasicAuthenticationFilter.lambda$apply$0(BasicAuthenticationFilter.java:54)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.AddWebDriverSpecHeaders.lambda$apply$0(AddWebDriverSpecHeaders.java:35)\n\tat org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.netty.server.SeleniumHandler.lambda$channelRead0$0(SeleniumHandler.java:44)\n\tat java.base\u002fjava.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base\u002fjava.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base\u002fjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base\u002fjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base\u002fjava.lang.Thread.run(Thread.java:829)\nCaused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:512)\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.getExceptionalCF(MultiExchange.java:459)\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.lambda$responseAsyncImpl$7(MultiExchange.java:386)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2094)\n\tat java.net.http\u002fjdk.internal.net.http.Http1Exchange.lambda$cancelImpl$9(Http1Exchange.java:482)\n\t... 3 more\nCaused by: java.net.ConnectException: HTTP connect timed out\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:513)\n\t... 10 more\n","exception.type": "org.openqa.selenium.TimeoutException","http.flavor": 1,"http.handler_class": "org.openqa.selenium.grid.router.HandleSession","http.host": "195.154.74.229:4444","http.method": "GET","http.request_content_length": "0","http.scheme": "HTTP","http.target": "\u002fsession\u002f46544a19c5852c24b27e383b9ddc6329\u002fscreenshot","session.id": "46544a19c5852c24b27e383b9ddc6329"}}

13:50:49.894 WARN [SeleniumSpanExporter$1.lambda$export$1] - org.openqa.selenium.TimeoutException: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
Build info: version: '4.17.0-SNAPSHOT', revision: '111086d'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'
Driver info: driver.version: unknown
	at org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:392)
	at org.openqa.selenium.remote.http.RetryRequest.lambda$apply$5(RetryRequest.java:81)
	at dev.failsafe.Functions.lambda$toCtxSupplier$11(Functions.java:243)
	at dev.failsafe.Functions.lambda$get$0(Functions.java:46)
	at dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)
	at dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)
	at dev.failsafe.internal.FallbackExecutor.lambda$apply$0(FallbackExecutor.java:51)
	at dev.failsafe.SyncExecutionImpl.executeSync(SyncExecutionImpl.java:187)
	at dev.failsafe.FailsafeExecutor.call(FailsafeExecutor.java:376)
	at dev.failsafe.FailsafeExecutor.get(FailsafeExecutor.java:112)
	at org.openqa.selenium.remote.http.RetryRequest.lambda$apply$6(RetryRequest.java:81)
	at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.java:42)
	at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)
	at org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:358)
	at org.openqa.selenium.remote.tracing.TracedHttpClient.execute(TracedHttpClient.java:54)
	at org.openqa.selenium.grid.web.ReverseProxyHandler.execute(ReverseProxyHandler.java:90)
	at org.openqa.selenium.grid.router.HandleSession.execute(HandleSession.java:181)
	at org.openqa.selenium.remote.http.Route$PredicatedRoute.handle(Route.java:383)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.grid.router.Router.execute(Router.java:87)
	at org.openqa.selenium.grid.web.EnsureSpecCompliantResponseHeaders.lambda$apply$0(EnsureSpecCompliantResponseHeaders.java:34)
	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$NestedRoute.handle(Route.java:270)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.grid.security.BasicAuthenticationFilter.lambda$apply$0(BasicAuthenticationFilter.java:54)
	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
	at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)
	at org.openqa.selenium.remote.http.Route.execute(Route.java:69)
	at org.openqa.selenium.remote.AddWebDriverSpecHeaders.lambda$apply$0(AddWebDriverSpecHeaders.java:35)
	at org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)
	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
	at org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)
	at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)
	at org.openqa.selenium.netty.server.SeleniumHandler.lambda$channelRead0$0(SeleniumHandler.java:44)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
	at java.net.http/jdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:512)
	at java.net.http/jdk.internal.net.http.MultiExchange.getExceptionalCF(MultiExchange.java:459)
	at java.net.http/jdk.internal.net.http.MultiExchange.lambda$responseAsyncImpl$7(MultiExchange.java:386)
	at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
	at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2094)
	at java.net.http/jdk.internal.net.http.Http1Exchange.lambda$cancelImpl$9(Http1Exchange.java:482)
	... 3 more
Caused by: java.net.ConnectException: HTTP connect timed out
	at java.net.http/jdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:513)
	... 10 more

13:50:49.894 WARN [SeleniumSpanExporter$1.lambda$export$1] - Unable to execute request for an existing session: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
Build info: version: '4.17.0-SNAPSHOT', revision: '111086d'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'
Driver info: driver.version: unknown
13:50:49.895 WARN [SeleniumSpanExporter$1.lambda$export$3] - {"traceId": "2445c2225c8be21080ddec9cb39ae8f1","eventTime": 1704894649893604164,"eventName": "exception","attributes": {"exception.message": "Unable to execute request for an existing session: java.net.http.HttpConnectTimeoutException: HTTP connect timed out\nBuild info: version: '4.17.0-SNAPSHOT', revision: '111086d'\nSystem info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'\nDriver info: driver.version: unknown","exception.stacktrace": "org.openqa.selenium.TimeoutException: java.net.http.HttpConnectTimeoutException: HTTP connect timed out\nBuild info: version: '4.17.0-SNAPSHOT', revision: '111086d'\nSystem info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.2.0-36-generic', java.version: '11.0.21'\nDriver info: driver.version: unknown\n\tat org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:392)\n\tat org.openqa.selenium.remote.http.RetryRequest.lambda$apply$5(RetryRequest.java:81)\n\tat dev.failsafe.Functions.lambda$toCtxSupplier$11(Functions.java:243)\n\tat dev.failsafe.Functions.lambda$get$0(Functions.java:46)\n\tat dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)\n\tat dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)\n\tat dev.failsafe.internal.FallbackExecutor.lambda$apply$0(FallbackExecutor.java:51)\n\tat dev.failsafe.SyncExecutionImpl.executeSync(SyncExecutionImpl.java:187)\n\tat dev.failsafe.FailsafeExecutor.call(FailsafeExecutor.java:376)\n\tat dev.failsafe.FailsafeExecutor.get(FailsafeExecutor.java:112)\n\tat org.openqa.selenium.remote.http.RetryRequest.lambda$apply$6(RetryRequest.java:81)\n\tat org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.java:42)\n\tat org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)\n\tat org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:358)\n\tat org.openqa.selenium.remote.tracing.TracedHttpClient.execute(TracedHttpClient.java:54)\n\tat org.openqa.selenium.grid.web.ReverseProxyHandler.execute(ReverseProxyHandler.java:90)\n\tat org.openqa.selenium.grid.router.HandleSession.execute(HandleSession.java:181)\n\tat org.openqa.selenium.remote.http.Route$PredicatedRoute.handle(Route.java:383)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.grid.router.Router.execute(Router.java:87)\n\tat org.openqa.selenium.grid.web.EnsureSpecCompliantResponseHeaders.lambda$apply$0(EnsureSpecCompliantResponseHeaders.java:34)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$NestedRoute.handle(Route.java:270)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.grid.security.BasicAuthenticationFilter.lambda$apply$0(BasicAuthenticationFilter.java:54)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:346)\n\tat org.openqa.selenium.remote.http.Route.execute(Route.java:69)\n\tat org.openqa.selenium.remote.AddWebDriverSpecHeaders.lambda$apply$0(AddWebDriverSpecHeaders.java:35)\n\tat org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)\n\tat org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:63)\n\tat org.openqa.selenium.netty.server.SeleniumHandler.lambda$channelRead0$0(SeleniumHandler.java:44)\n\tat java.base\u002fjava.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base\u002fjava.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base\u002fjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base\u002fjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base\u002fjava.lang.Thread.run(Thread.java:829)\nCaused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:512)\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.getExceptionalCF(MultiExchange.java:459)\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.lambda$responseAsyncImpl$7(MultiExchange.java:386)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)\n\tat java.base\u002fjava.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2094)\n\tat java.net.http\u002fjdk.internal.net.http.Http1Exchange.lambda$cancelImpl$9(Http1Exchange.java:482)\n\t... 3 more\nCaused by: java.net.ConnectException: HTTP connect timed out\n\tat java.net.http\u002fjdk.internal.net.http.MultiExchange.toTimeoutException(MultiExchange.java:513)\n\t... 10 more\n","exception.type": "org.openqa.selenium.TimeoutException","http.flavor": 1,"http.handler_class": "org.openqa.selenium.grid.router.HandleSession","http.host": "195.154.74.229:4444","http.method": "DELETE","http.request_content_length": "0","http.scheme": "HTTP","http.target": "\u002fsession\u002f46544a19c5852c24b27e383b9ddc6329","session.id": "46544a19c5852c24b27e383b9ddc6329"}}

13:53:21.750 INFO [GridModel.purgeDeadNodes] - Removing Node http://100.64.48.173:5555, DOWN for too long

GuillaumeFradet avatar Jan 10 '24 14:01 GuillaumeFradet

Looks like a command is timing out, but it is not clear as the log from the Node is incomplete.

You said that this was working fine before, which version were you using?

diemol avatar Jan 10 '24 14:01 diemol

I have 3 clusters, 2 are on version 4.11.0-20230801 and 1 on version 4.16.1-20231212. Right now, I'm running tests on the nightly version.

Here's another log from one of my last tests for the chrome node kubectl logs selenium-chrome-node-b87vv-lkpf6 -n selenium-grid > chromeNode.log : `2024-01-10 14:12:43,201 INFO Included extra file "/etc/supervisor/conf.d/selenium.conf" during parsing 2024-01-10 14:12:43,203 INFO RPC interface 'supervisor' initialized 2024-01-10 14:12:43,203 CRIT Server 'unix_http_server' running without any HTTP authentication checking 2024-01-10 14:12:43,203 INFO supervisord started with pid 9 2024-01-10 14:12:44,208 INFO spawned: 'xvfb' with pid 10 2024-01-10 14:12:44,214 INFO spawned: 'vnc' with pid 11 2024-01-10 14:12:44,221 INFO spawned: 'novnc' with pid 17 2024-01-10 14:12:44,228 INFO spawned: 'selenium-node' with pid 24 2024-01-10 14:12:44,231 INFO success: selenium-node entered RUNNING state, process has stayed up for > than 0 seconds (startsecs) Appending Selenium options: --session-timeout 5400 Generating Selenium Config Configuring server... Setting up SE_NODE_HOST... Setting up SE_NODE_PORT... Tracing is disabled Selenium Grid Node configuration: [events] publish = "tcp://selenium-hub:4442" subscribe = "tcp://selenium-hub:4443"

[node] grid-url = "http://xxxx:[email protected]:4444" session-timeout = "5400" 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": "120.0", "platformName": "Linux", "goog:chromeOptions": {"binary": "/usr/bin/google-chrome"}}' max-sessions = 1

Starting Selenium Grid Node... 2024-01-10 14:12:45,268 INFO success: xvfb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2024-01-10 14:12:45,269 INFO success: vnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2024-01-10 14:12:45,269 INFO success: novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 14:12:45.482 INFO [LoggingOptions.configureLogEncoding] - Using the system default encoding 14:12:45.487 INFO [OpenTelemetryTracer.createTracer] - Using OpenTelemetry for tracing 14:12:45.692 INFO [UnboundZmqEventBus.] - Connecting to tcp://selenium-hub:4442 and tcp://selenium-hub:4443 14:12:45.789 INFO [UnboundZmqEventBus.] - Sockets created 14:12:46.791 INFO [UnboundZmqEventBus.] - Event bus ready 14:12:46.977 INFO [NodeServer.createHandlers] - Reporting self as: http://100.64.48.237:5555 14:12:46.996 INFO [NodeOptions.getSessionFactories] - Detected 1 available processors 14:12:47.080 INFO [NodeOptions.report] - Adding chrome for {"browserName": "chrome","browserVersion": "120.0","goog:chromeOptions": {"binary": "\u002fusr\u002fbin\u002fgoogle-chrome"},"platformName": "linux","se:noVncPort": 7900,"se:vncEnabled": true} 1 times 14:12:47.098 INFO [Node.] - Binding additional locator mechanisms: relative 14:12:47.303 INFO [NodeServer$1.start] - Starting registration process for Node http://100.64.48.237:5555 14:12:47.304 INFO [NodeServer.execute] - Started Selenium node 4.17.0-SNAPSHOT (revision 111086d): http://100.64.48.237:5555 14:12:47.360 INFO [NodeServer$1.lambda$start$1] - Sending registration event... 14:12:47.587 INFO [NodeServer.lambda$createHandlers$2] - Node has been added 14:15:42.186 INFO [LocalNode.checkSessionCount] - Draining Node, configured sessions value (1) has been reached. 14:15:42.191 INFO [LocalNode.newSession] - Session created by the Node. Id: 35d4d29d3a0da345356d30fadc4661fa, Caps: Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 120.0.6099.216, chrome: {chromedriverVersion: 120.0.6099.109 (3419140ab66..., userDataDir: /tmp/.org.chromium.Chromium...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:35349}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: Proxy(), se:bidiEnabled: false, se:cdp: ws://admin:rmdscrap@seleniu..., se:cdpVersion: 120.0.6099.216, se:vnc: ws://admin:rmdscrap@seleniu..., se:vncEnabled: true, se:vncLocalAddress: ws://100.64.48.237:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true} `

GuillaumeFradet avatar Jan 10 '24 14:01 GuillaumeFradet

My question is if things are still working with the previous version and when did it stop working?

diemol avatar Jan 10 '24 14:01 diemol

It doesn't work with either 4.11 or 4.16 since monday. It was working the previous friday

GuillaumeFradet avatar Jan 10 '24 14:01 GuillaumeFradet