SeleniumHQ / docker-selenium

Provides a simple way to run Selenium Grid with Chrome, Firefox, and Edge using Docker, making it easier to perform browser automation
http://www.selenium.dev/docker-selenium/
Other
7.86k stars 2.51k forks source link

[🐛 Bug]: Dynamic Grid Node-Docker throws exceptions #1719

Closed NiiWiiCamo closed 1 year ago

NiiWiiCamo commented 1 year ago

What happened?

When starting node-docker for dynamic grid I cannot get it to pull the images, or if I have the images already pulled manually it throws a NullPointerException. Node-Chrome and hub work fine.

Edit: ENVs `REPLICAS=5

SE_VERSION=4.6.0-20221104 `

config.toml is default.

Command used to start Selenium Grid with Docker

version: "3.9"
services:

  node-docker:
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
    image: selenium/node-docker:4.6.0-20221104
    networks:
      - net_selenium
    volumes:
      - assets:/opt/selenium/assets
      - /var/lib/docker/volumes/binds/selenium-config/config.toml:/opt/bin/config.toml
#      - chrome-profile:/home/seluser/profile
      - /var/run/docker.sock:/var/run/docker.sock
      - /dev/shm:/dev/shm

  selenium-hub:
    container_name: selenium-hub
    image: selenium/hub:${SE_VERSION}
    networks:
      net_external:
        ipv4_address: 172.25.0.128
      net_selenium:
    ports:
#      - "127.0.0.1:4442:4442"
#      - "127.0.0.1:4443:4443"
      - "127.0.0.1:4444:4444"
      - "10.10.60.250:4444:4444"

#  selenium-chrome:
#    image: selenium/node-chrome:${SE_VERSION}
#    depends_on:
#      - selenium-hub
#    deploy:
#      mode: replicated
#      replicas: ${REPLICAS}
#    environment:
#      - SE_EVENT_BUS_HOST=selenium-hub
#      - SE_EVENT_BUS_PUBLISH_PORT=4442
#      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
#    networks:
#      net_selenium:
#    volumes:
##      - chrome-profile:/home/seluser/profile
#      - /dev/shm:/dev/shm

networks:
  net_external:
    name: net_external
    external: true
  net_selenium:
    name: net_selenium

volumes:
  assets:
  chrome-profile:

Relevant log output

2022-11-09 06:01:30,794 INFO Included extra file "/etc/supervisor/conf.d/selenium-grid-docker.conf" during parsing
2022-11-09 06:01:30,797 INFO RPC interface 'supervisor' initialized
2022-11-09 06:01:30,797 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2022-11-09 06:01:30,797 INFO supervisord started with pid 8
2022-11-09 06:01:31,800 INFO spawned: 'socat' with pid 10
2022-11-09 06:01:31,801 INFO spawned: 'selenium-grid-docker' with pid 11
2022-11-09 06:01:31,804 INFO success: socat entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2022-11-09 06:01:31,804 INFO success: selenium-grid-docker entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
Starting Selenium Grid Node Docker...
Tracing is disabled
06:01:32.120 INFO [LoggingOptions.configureLogEncoding] - Using the system default encoding
06:01:32.123 INFO [OpenTelemetryTracer.createTracer] - Using OpenTelemetry for tracing
06:01:32.208 INFO [UnboundZmqEventBus.<init>] - Connecting to tcp://selenium-hub:4442 and tcp://selenium-hub:4443
06:01:32.245 INFO [UnboundZmqEventBus.<init>] - Sockets created
06:01:33.246 INFO [UnboundZmqEventBus.<init>] - Event bus ready
06:01:33.336 INFO [NodeServer.createHandlers] - Reporting self as: http://172.18.0.3:5555
06:01:33.351 INFO [NodeOptions.getSessionFactories] - Detected 12 available processors
06:01:33.590 INFO [V141Docker.isContainerPresent] - Checking if container is present: 12fe231b51e9
06:01:33.604 INFO [Docker.getImage] - Obtaining image: selenium/standalone-chrome:4.6.0-20221104
06:01:33.604 INFO [Docker.getImage] - Obtaining image: selenium/standalone-edge:4.6.0-20221104
06:01:33.604 INFO [Docker.getImage] - Obtaining image: selenium/standalone-firefox:4.6.0-20221104
06:01:33.606 INFO [V141Docker.getImage] - Listing local images: Reference{domain='docker.io', name='selenium/standalone-chrome', tag='4.6.0-20221104', digest='null'}
06:01:33.606 INFO [V141Docker.getImage] - Listing local images: Reference{domain='docker.io', name='selenium/standalone-firefox', tag='4.6.0-20221104', digest='null'}
06:01:33.606 INFO [V141Docker.getImage] - Listing local images: Reference{domain='docker.io', name='selenium/standalone-edge', tag='4.6.0-20221104', digest='null'}
06:01:33.627 INFO [V141Docker.getImage] - Pulling Reference{domain='docker.io', name='selenium/standalone-chrome', tag='4.6.0-20221104', digest='null'}
06:01:33.627 INFO [V141Docker.getImage] - Pulling Reference{domain='docker.io', name='selenium/standalone-edge', tag='4.6.0-20221104', digest='null'}
06:01:33.627 INFO [PullImage.apply] - Pulling Reference{domain='docker.io', name='selenium/standalone-chrome', tag='4.6.0-20221104', digest='null'}
06:01:33.627 INFO [PullImage.apply] - Pulling Reference{domain='docker.io', name='selenium/standalone-edge', tag='4.6.0-20221104', digest='null'}
06:01:33.629 INFO [V141Docker.getImage] - Pulling Reference{domain='docker.io', name='selenium/standalone-firefox', tag='4.6.0-20221104', digest='null'}
06:01:33.630 INFO [PullImage.apply] - Pulling Reference{domain='docker.io', name='selenium/standalone-firefox', tag='4.6.0-20221104', digest='null'}
java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.openqa.selenium.grid.Bootstrap.runMain(Bootstrap.java:77)
    at org.openqa.selenium.grid.Bootstrap.main(Bootstrap.java:70)
Caused by: org.openqa.selenium.grid.config.ConfigException: java.lang.reflect.InvocationTargetException
    at org.openqa.selenium.grid.config.MemoizedConfig.getClass(MemoizedConfig.java:115)
    at org.openqa.selenium.grid.node.config.NodeOptions.getNode(NodeOptions.java:152)
    at org.openqa.selenium.grid.node.httpd.NodeServer.createHandlers(NodeServer.java:128)
    at org.openqa.selenium.grid.node.httpd.NodeServer.asServer(NodeServer.java:184)
    at org.openqa.selenium.grid.node.httpd.NodeServer.execute(NodeServer.java:239)
    at org.openqa.selenium.grid.TemplateGridCommand.lambda$configure$4(TemplateGridCommand.java:129)
    at org.openqa.selenium.grid.Main.launch(Main.java:83)
    at org.openqa.selenium.grid.Main.go(Main.java:57)
    at org.openqa.selenium.grid.Main.main(Main.java:42)
    ... 6 more
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.openqa.selenium.grid.config.ClassCreation.callCreateMethod(ClassCreation.java:50)
    at org.openqa.selenium.grid.config.MemoizedConfig.lambda$getClass$4(MemoizedConfig.java:100)
    at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1737)
    at org.openqa.selenium.grid.config.MemoizedConfig.getClass(MemoizedConfig.java:95)

    ... 14 more
Caused by: java.lang.IllegalArgumentException: non-positive contentLength: 0
    at java.net.http/java.net.http.HttpRequest$BodyPublishers.fromPublisher(HttpRequest.java:539)
    at org.openqa.selenium.remote.http.jdk.JdkHttpMessages.notChunkingBodyPublisher(JdkHttpMessages.java:124)
    at org.openqa.selenium.remote.http.jdk.JdkHttpMessages.createRequest(JdkHttpMessages.java:76)
    at org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:280)
    at org.openqa.selenium.remote.tracing.TracedHttpClient.execute(TracedHttpClient.java:55)
    at org.openqa.selenium.docker.v1_41.PullImage.apply(PullImage.java:63)
    at org.openqa.selenium.docker.v1_41.V141Docker.getImage(V141Docker.java:80)
    at org.openqa.selenium.docker.Docker.lambda$getImage$0(Docker.java:51)
    at java.base/java.util.Optional.map(Optional.java:265)
    at org.openqa.selenium.docker.Docker.getImage(Docker.java:51)
    at org.openqa.selenium.grid.node.docker.DockerOptions.lambda$loadImages$4(DockerOptions.java:260)
    at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
    at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1692)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Exception in thread "Thread-0" java.lang.NullPointerException
    at org.openqa.selenium.grid.node.httpd.NodeServer.lambda$new$0(NodeServer.java:80)
    at java.base/java.lang.Thread.run(Thread.java:829)
2022-11-09 06:01:33,955 INFO exited: selenium-grid-docker (exit status 1; not expected)

Operating System

Proxmox Linux proxbox 5.15.64-1-pve #1 SMP PVE 5.15.64-1 (Thu, 13 Oct 2022 10:30:34 +0200) x86_64 GNU/Linux

Docker Selenium version (tag)

4.6.0-20221104

DerekJLeggett commented 1 year ago

I'm having the exact same issue, I had to revert back to 4.5.3-20221024 in order to get it working.

DanMcNamee commented 1 year ago

Same here as well. 4.5.3-20221024 is working for me as well, but latest is not.

sebzur commented 1 year ago

I also confirm that. When images are pulled before the grid is started I can have it running. My config:

version: "3"
services:
  node-docker:
    image: selenium/node-docker:4.6.0-20221104
    volumes:
      - ./assets:/opt/selenium/assets
      - ./config.toml:/opt/bin/config.toml
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443

  selenium-hub:
    image: selenium/hub:4.6.0-20221104
    container_name: selenium-hub
    ports:
      - "4442:4442"
      - "4443:4443"
      - "4444:4444"

And the output:

node-docker_1   | 13:18:13.148 INFO [V141Docker.getImage] - Pulling Reference{domain='docker.io', name='selenium/video', tag='latest', digest='null'}
node-docker_1   | 13:18:13.148 INFO [PullImage.apply] - Pulling Reference{domain='docker.io', name='selenium/video', tag='latest', digest='null'}
node-docker_1   | java.lang.reflect.InvocationTargetException
node-docker_1   |       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
node-docker_1   |       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
node-docker_1   |       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
node-docker_1   |       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
node-docker_1   |       at org.openqa.selenium.grid.Bootstrap.runMain(Bootstrap.java:77)
node-docker_1   |       at org.openqa.selenium.grid.Bootstrap.main(Bootstrap.java:70)
node-docker_1   | Caused by: org.openqa.selenium.grid.config.ConfigException: java.lang.reflect.InvocationTargetException
node-docker_1   |       at org.openqa.selenium.grid.config.MemoizedConfig.getClass(MemoizedConfig.java:115)
node-docker_1   |       at org.openqa.selenium.grid.node.config.NodeOptions.getNode(NodeOptions.java:152)
node-docker_1   |       at org.openqa.selenium.grid.node.httpd.NodeServer.createHandlers(NodeServer.java:128)
node-docker_1   |       at org.openqa.selenium.grid.node.httpd.NodeServer.asServer(NodeServer.java:184)
node-docker_1   |       at org.openqa.selenium.grid.node.httpd.NodeServer.execute(NodeServer.java:239)
node-docker_1   |       at org.openqa.selenium.grid.TemplateGridCommand.lambda$configure$4(TemplateGridCommand.java:129)
node-docker_1   |       at org.openqa.selenium.grid.Main.launch(Main.java:83)
node-docker_1   |       at org.openqa.selenium.grid.Main.go(Main.java:57)
node-docker_1   |       at org.openqa.selenium.grid.Main.main(Main.java:42)
node-docker_1   |       ... 6 more
node-docker_1   | Caused by: java.lang.reflect.InvocationTargetException
node-docker_1   |       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
node-docker_1   |       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
node-docker_1   |       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
node-docker_1   |       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
node-docker_1   |       at org.openqa.selenium.grid.config.ClassCreation.callCreateMethod(ClassCreation.java:50)
node-docker_1   |       at org.openqa.selenium.grid.config.MemoizedConfig.lambda$getClass$4(MemoizedConfig.java:100)
node-docker_1   |       at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1737)
node-docker_1   |       at org.openqa.selenium.grid.config.MemoizedConfig.getClass(MemoizedConfig.java:95)
node-docker_1   |       ... 14 more
node-docker_1   | Caused by: java.lang.IllegalArgumentException: non-positive contentLength: 0
node-docker_1   |       at java.net.http/java.net.http.HttpRequest$BodyPublishers.fromPublisher(HttpRequest.java:539)
node-docker_1   |       at org.openqa.selenium.remote.http.jdk.JdkHttpMessages.notChunkingBodyPublisher(JdkHttpMessages.java:124)
node-docker_1   |       at org.openqa.selenium.remote.http.jdk.JdkHttpMessages.createRequest(JdkHttpMessages.java:76)
node-docker_1   |       at org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:280)
node-docker_1   |       at org.openqa.selenium.remote.tracing.TracedHttpClient.execute(TracedHttpClient.java:55)
node-docker_1   |       at org.openqa.selenium.docker.v1_41.PullImage.apply(PullImage.java:63)
node-docker_1   |       at org.openqa.selenium.docker.v1_41.V141Docker.getImage(V141Docker.java:80)
node-docker_1   |       at org.openqa.selenium.docker.Docker.lambda$getImage$0(Docker.java:51)
node-docker_1   |       at java.base/java.util.Optional.map(Optional.java:265)
node-docker_1   |       at org.openqa.selenium.docker.Docker.getImage(Docker.java:51)
node-docker_1   |       at org.openqa.selenium.grid.node.docker.DockerOptions.getVideoImage(DockerOptions.java:223)
node-docker_1   |       at org.openqa.selenium.grid.node.docker.DockerOptions.getDockerSessionFactories(DockerOptions.java:164)
node-docker_1   |       at org.openqa.selenium.grid.node.local.LocalNodeFactory.create(LocalNodeFactory.java:85)
node-docker_1   |       ... 22 more
node-docker_1   | Exception in thread "Thread-0" java.lang.NullPointerException
node-docker_1   |       at org.openqa.selenium.grid.node.httpd.NodeServer.lambda$new$0(NodeServer.java:80)
node-docker_1   |       at java.base/java.lang.Thread.run(Thread.java:829)
node-docker_1   | 2022-11-25 13:18:13,482 INFO exited: selenium-grid-docker (exit status 1; not expected)

After manual download, everything works as expected:

ttaching to selenium-hub, selenium-grid_node-docker_1
selenium-hub    | 2022-11-25 13:27:13,796 INFO Included extra file "/etc/supervisor/conf.d/selenium-grid-hub.conf" during parsing
selenium-hub    | 2022-11-25 13:27:13,799 INFO RPC interface 'supervisor' initialized
selenium-hub    | 2022-11-25 13:27:13,799 CRIT Server 'unix_http_server' running without any HTTP authentication checking
selenium-hub    | 2022-11-25 13:27:13,800 INFO supervisord started with pid 8
node-docker_1   | 2022-11-25 13:27:14,586 INFO Included extra file "/etc/supervisor/conf.d/selenium-grid-docker.conf" during parsing
node-docker_1   | 2022-11-25 13:27:14,589 INFO RPC interface 'supervisor' initialized
node-docker_1   | 2022-11-25 13:27:14,589 CRIT Server 'unix_http_server' running without any HTTP authentication checking
node-docker_1   | 2022-11-25 13:27:14,589 INFO supervisord started with pid 8
selenium-hub    | 2022-11-25 13:27:14,802 INFO spawned: 'selenium-grid-hub' with pid 10
selenium-hub    | Tracing is disabled
selenium-hub    | 2022-11-25 13:27:14,807 INFO success: selenium-grid-hub entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
selenium-hub    | 13:27:15.153 INFO [LoggingOptions.configureLogEncoding] - Using the system default encoding
selenium-hub    | 13:27:15.157 INFO [OpenTelemetryTracer.createTracer] - Using OpenTelemetry for tracing
selenium-hub    | 13:27:15.276 INFO [BoundZmqEventBus.<init>] - XPUB binding to [binding to tcp://*:4442, advertising as tcp://172.19.0.2:4442], XSUB binding to [binding to tcp://*:4443, advertising as tcp://172.19.0.2:4443]
selenium-hub    | 13:27:15.323 INFO [UnboundZmqEventBus.<init>] - Connecting to tcp://172.19.0.2:4442 and tcp://172.19.0.2:4443
selenium-hub    | 13:27:15.341 INFO [UnboundZmqEventBus.<init>] - Sockets created
node-docker_1   | 2022-11-25 13:27:15,592 INFO spawned: 'socat' with pid 10
node-docker_1   | 2022-11-25 13:27:15,594 INFO spawned: 'selenium-grid-docker' with pid 11
node-docker_1   | 2022-11-25 13:27:15,598 INFO success: socat entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
node-docker_1   | 2022-11-25 13:27:15,598 INFO success: selenium-grid-docker entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
node-docker_1   | Starting Selenium Grid Node Docker...
node-docker_1   | Tracing is disabled
node-docker_1   | 13:27:15.954 INFO [LoggingOptions.configureLogEncoding] - Using the system default encoding
node-docker_1   | 13:27:15.958 INFO [OpenTelemetryTracer.createTracer] - Using OpenTelemetry for tracing
node-docker_1   | 13:27:16.071 INFO [UnboundZmqEventBus.<init>] - Connecting to tcp://selenium-hub:4442 and tcp://selenium-hub:4443
node-docker_1   | 13:27:16.116 INFO [UnboundZmqEventBus.<init>] - Sockets created
selenium-hub    | 13:27:16.342 INFO [UnboundZmqEventBus.<init>] - Event bus ready
selenium-hub    | 13:27:16.965 INFO [Hub.execute] - Started Selenium Hub 4.6.0 (revision 79f1c02ae20): http://172.19.0.2:4444
node-docker_1   | 13:27:17.118 INFO [UnboundZmqEventBus.<init>] - Event bus ready
node-docker_1   | 13:27:17.224 INFO [NodeServer.createHandlers] - Reporting self as: http://172.19.0.3:5555
node-docker_1   | 13:27:17.242 INFO [NodeOptions.getSessionFactories] - Detected 16 available processors
node-docker_1   | 13:27:17.577 INFO [V141Docker.isContainerPresent] - Checking if container is present: b5a96dcf1ded
node-docker_1   | 13:27:17.593 INFO [Docker.getImage] - Obtaining image: selenium/standalone-chrome:4.6.0-20221104
node-docker_1   | 13:27:17.594 INFO [V141Docker.getImage] - Listing local images: Reference{domain='docker.io', name='selenium/standalone-chrome', tag='4.6.0-20221104', digest='null'}
node-docker_1   | 13:27:17.608 INFO [Docker.getImage] - Obtaining image: selenium/video:latest
node-docker_1   | 13:27:17.608 INFO [V141Docker.getImage] - Listing local images: Reference{domain='docker.io', name='selenium/video', tag='latest', digest='null'}
node-docker_1   | 13:27:17.614 INFO [Docker.getImage] - Obtaining image: selenium/video:latest
node-docker_1   | 13:27:17.615 INFO [V141Docker.getImage] - Listing local images: Reference{domain='docker.io', name='selenium/video', tag='latest', digest='null'}
node-docker_1   | 13:27:17.622 INFO [Docker.getImage] - Obtaining image: selenium/standalone-chrome:4.6.0-20221104
node-docker_1   | 13:27:17.622 INFO [V141Docker.getImage] - Listing local images: Reference{domain='docker.io', name='selenium/standalone-chrome', tag='4.6.0-20221104', digest='null'}
node-docker_1   | 13:27:17.634 INFO [DockerOptions.lambda$getDockerSessionFactories$1] - Mapping Capabilities {browserName: chrome} to docker image selenium/standalone-chrome:4.6.0-20221104 16 times
node-docker_1   | 13:27:17.677 INFO [Node.<init>] - Binding additional locator mechanisms: id, name, relative
node-docker_1   | 13:27:17.869 INFO [NodeServer$1.start] - Starting registration process for Node http://172.19.0.3:5555
node-docker_1   | 13:27:17.870 INFO [NodeServer.execute] - Started Selenium node 4.6.0 (revision 79f1c02ae20): http://172.19.0.3:5555
node-docker_1   | 13:27:17.887 INFO [NodeServer$1.lambda$start$1] - Sending registration event...
selenium-hub    | 13:27:17.932 INFO [Node.<init>] - Binding additional locator mechanisms: name, relative, id
selenium-hub    | 13:27:18.286 INFO [GridModel.setAvailability] - Switching Node c5252f27-ad32-43d1-84f5-502e1ea78888 (uri: http://172.19.0.3:5555) from DOWN to UP
selenium-hub    | 13:27:18.287 INFO [LocalDistributor.add] - Added node c5252f27-ad32-43d1-84f5-502e1ea78888 at http://172.19.0.3:5555. Health check every 120s
node-docker_1   | 13:27:18.293 INFO [NodeServer.lambda$createHandlers$2] - Node has been added

As one can see from the logs and compose config, I'm on 4.6.0-20221104.

sebzur commented 1 year ago

However... When I try to run a test, the hub crashes. :cry:

selenium-hub    | 13:34:12.228 INFO [LocalDistributor.newSession] - Session request received by the Distributor:
selenium-hub    |  [Capabilities {browserName: chrome}, Capabilities {browserName: chrome, platform: ANY, version: }, Capabilities {browserName: chrome, platformName: ANY}]
node-docker_1   | 13:34:12.249 INFO [DockerSessionFactory.apply] - Starting session for Capabilities {browserName: chrome}
node-docker_1   | 13:34:12.250 INFO [DockerSessionFactory.apply] - Creating container...
node-docker_1   | 13:34:12.319 INFO [Container.<init>] - Created container 89c69c3836f0521529657a663efe3b9c5ff56ffb452f51aede711f8472a00230
node-docker_1   | 13:34:12.319 INFO [Container.start] - Starting container 89c69c3836f0521529657a663efe3b9c5ff56ffb452f51aede711f8472a00230
node-docker_1   | 13:34:12.322 WARN [SessionSlot.apply] - Unable to create session
node-docker_1   | java.lang.IllegalArgumentException: non-positive contentLength: 0
node-docker_1   |       at java.net.http/java.net.http.HttpRequest$BodyPublishers.fromPublisher(HttpRequest.java:539)
node-docker_1   |       at org.openqa.selenium.remote.http.jdk.JdkHttpMessages.notChunkingBodyPublisher(JdkHttpMessages.java:124)
node-docker_1   |       at org.openqa.selenium.remote.http.jdk.JdkHttpMessages.createRequest(JdkHttpMessages.java:76)
node-docker_1   |       at org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:280)
node-docker_1   |       at org.openqa.selenium.remote.tracing.TracedHttpClient.execute(TracedHttpClient.java:55)
node-docker_1   |       at org.openqa.selenium.docker.v1_41.StartContainer.apply(StartContainer.java:40)
node-docker_1   |       at org.openqa.selenium.docker.v1_41.V141Docker.startContainer(V141Docker.java:115)
node-docker_1   |       at org.openqa.selenium.docker.Container.start(Container.java:47)
node-docker_1   |       at org.openqa.selenium.grid.node.docker.DockerSessionFactory.apply(DockerSessionFactory.java:155)
node-docker_1   |       at org.openqa.selenium.grid.node.docker.DockerSessionFactory.apply(DockerSessionFactory.java:90)
node-docker_1   |       at org.openqa.selenium.grid.node.local.SessionSlot.apply(SessionSlot.java:147)
node-docker_1   |       at org.openqa.selenium.grid.node.local.LocalNode.newSession(LocalNode.java:372)
node-docker_1   |       at org.openqa.selenium.grid.node.NewNodeSession.execute(NewNodeSession.java:52)
node-docker_1   |       at org.openqa.selenium.remote.http.Route$TemplatizedRoute.handle(Route.java:192)
node-docker_1   |       at org.openqa.selenium.remote.http.Route.execute(Route.java:68)
node-docker_1   |       at org.openqa.selenium.grid.security.RequiresSecretFilter.lambda$apply$0(RequiresSecretFilter.java:64)
node-docker_1   |       at org.openqa.selenium.remote.tracing.SpanWrappedHttpHandler.execute(SpanWrappedHttpHandler.java:86)
node-docker_1   |       at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:64)
node-docker_1   |       at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:336)
node-docker_1   |       at org.openqa.selenium.remote.http.Route.execute(Route.java:68)
node-docker_1   |       at org.openqa.selenium.grid.node.Node.execute(Node.java:240)
node-docker_1   |       at org.openqa.selenium.remote.http.Route$CombinedRoute.handle(Route.java:336)
node-docker_1   |       at org.openqa.selenium.remote.http.Route.execute(Route.java:68)
node-docker_1   |       at org.openqa.selenium.remote.AddWebDriverSpecHeaders.lambda$apply$0(AddWebDriverSpecHeaders.java:35)
node-docker_1   |       at org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)
node-docker_1   |       at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:64)
node-docker_1   |       at org.openqa.selenium.remote.ErrorFilter.lambda$apply$0(ErrorFilter.java:44)
node-docker_1   |       at org.openqa.selenium.remote.http.Filter$1.execute(Filter.java:64)
node-docker_1   |       at org.openqa.selenium.netty.server.SeleniumHandler.lambda$channelRead0$0(SeleniumHandler.java:44)
node-docker_1   |       at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
node-docker_1   |       at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
node-docker_1   |       at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
node-docker_1   |       at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
node-docker_1   |       at java.base/java.lang.Thread.run(Thread.java:829)
node-docker_1   | 13:34:12.324 WARN [SeleniumSpanExporter$1.lambda$export$3] - {"traceId": "e02703f503413a59822575d6fc685549","eventTime": 1669383252322987553,"eventName": "Unable to create session with the driver","attributes": {"current.session.count": 0,"logger": "org.openqa.selenium.grid.node.local.LocalNode","session.request.capabilities": "Capabilities {browserName: chrome}","session.request.downstreamdialect": "[W3C, OSS]"}}
node-docker_1   |
selenium-hub    | 13:34:12.337 WARN [SeleniumSpanExporter$1.lambda$export$3] - {"traceId": "e02703f503413a59822575d6fc685549","eventTime": 1669383252227281576,"eventName": "Session request received by the Distributor","attributes": {"logger": "org.openqa.selenium.grid.distributor.local.LocalDistributor","request.payload": "[Capabilities {browserName: chrome}, Capabilities {browserName: chrome, platform: ANY, version: }, Capabilities {browserName: chrome, platformName: ANY
}]"}}
selenium-hub    |
selenium-hub    | 13:34:12.337 WARN [SeleniumSpanExporter$1.lambda$export$1] - Unable to create session: Could not start a new session. Could not start a new session. non-positive contentLength: 0
selenium-hub    | Host info: host: 'b5a96dcf1ded', ip: '172.19.0.3'
selenium-hub    | Build info: version: '4.6.0', revision: '79f1c02ae20'
selenium-hub    | System info: os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-194-generic', java.version: '11.0.16'
selenium-hub    | Driver info: driver.version: unknown
selenium-hub    | Build info: version: '4.6.0', revision: '79f1c02ae20'
selenium-hub    | System info: os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-194-generic', java.version: '11.0.16'
selenium-hub    | Driver info: driver.version: unknown
selenium-hub    | 13:34:12.337 WARN [SeleniumSpanExporter$1.lambda$export$1] - org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Could not start a new session. non-positive contentLength: 0
selenium-hub    | Host info: host: 'b5a96dcf1ded', ip: '172.19.0.3'
selenium-hub    | Build info: version: '4.6.0', revision: '79f1c02ae20'
selenium-hub    | System info: os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-194-generic', java.version: '11.0.16'
selenium-hub    | Driver info: driver.version: unknown
selenium-hub    | Build info: version: '4.6.0', revision: '79f1c02ae20'
selenium-hub    | System info: os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-194-generic', java.version: '11.0.16'
selenium-hub    | Driver info: driver.version: unknown
selenium-hub    |       at org.openqa.selenium.grid.node.remote.RemoteNode.newSession(RemoteNode.java:150)
selenium-hub    |       at org.openqa.selenium.grid.distributor.local.LocalDistributor.startSession(LocalDistributor.java:645)
selenium-hub    |       at org.openqa.selenium.grid.distributor.local.LocalDistributor.newSession(LocalDistributor.java:564)
selenium-hub    |       at org.openqa.selenium.grid.distributor.local.LocalDistributor$NewSessionRunnable.handleNewSessionRequest(LocalDistributor.java:818)
selenium-hub    |       at org.openqa.selenium.grid.distributor.local.LocalDistributor$NewSessionRunnable.lambda$run$1(LocalDistributor.java:779)
selenium-hub    |       at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
selenium-hub    |       at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
selenium-hub    |       at java.base/java.lang.Thread.run(Thread.java:829)
selenium-hub    |
selenium-hub    | 13:34:12.338 WARN [SeleniumSpanExporter$1.lambda$export$3] - {"traceId": "e02703f503413a59822575d6fc685549","eventTime": 1669383252334377503,"eventName": "exception","attributes": {"exception.message": "Unable to create session: Could not start a new session. Could not start a new session. non-positive contentLength: 0 \nHost info: host: 'b5a96dcf1ded', ip: '172.19.0.3'\nBuild info: version: '4.6.0', revision: '79f1c02ae20'\nSystem info: os.name: 'Linux'
, os.arch: 'amd64', os.version: '4.15.0-194-generic', java.version: '11.0.16'\nDriver info: driver.version: unknown\nBuild info: version: '4.6.0', revision: '79f1c02ae20'\nSystem info: os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-194-generic', java.version: '11.0.16'\nDriver info: driver.version: unknown","exception.stacktrace": "org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Could not start a new session. non-positive contentLen
gth: 0 \nHost info: host: 'b5a96dcf1ded', ip: '172.19.0.3'\nBuild info: version: '4.6.0', revision: '79f1c02ae20'\nSystem info: os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-194-generic', java.version: '11.0.16'\nDriver info: driver.version: unknown\nBuild info: version: '4.6.0', revision: '79f1c02ae20'\nSystem info: os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-194-generic', java.version: '11.0.16'\nDriver info: driver.version: unknown\n\tat org.openq
a.selenium.grid.node.remote.RemoteNode.newSession(RemoteNode.java:150)\n\tat org.openqa.selenium.grid.distributor.local.LocalDistributor.startSession(LocalDistributor.java:645)\n\tat org.openqa.selenium.grid.distributor.local.LocalDistributor.newSession(LocalDistributor.java:564)\n\tat org.openqa.selenium.grid.distributor.local.LocalDistributor$NewSessionRunnable.handleNewSessionRequest(LocalDistributor.java:818)\n\tat org.openqa.selenium.grid.distributor.local.LocalDistr
ibutor$NewSessionRunnable.lambda$run$1(LocalDistributor.java:779)\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)\n","exception.type": "org.openqa.selenium.SessionNotCreatedException","logger": "org.openqa.selenium.grid.distributor.local.LocalDistributor","reques
t.payload": "[Capabilities {browserName: chrome}, Capabilities {browserName: chrome, platform: ANY, version: }, Capabilities {browserName: chrome, platformName: ANY}]"}}
selenium-hub    |
selenium-hub    | 13:34:12.342 WARN [SeleniumSpanExporter$1.lambda$export$3] - {"traceId": "e02703f503413a59822575d6fc685549","eventTime": 1669383252341373667,"eventName": "HTTP request execution complete","attributes": {"http.flavor": 1,"http.handler_class": "org.openqa.selenium.grid.sessionqueue.local.LocalNewSessionQueue","http.host": "127.0.0.1:4444","http.method": "POST","http.request_content_length": "187","http.scheme": "HTTP","http.status_code": 500,"http.target":
 "\u002fsession","http.user_agent": "selenium\u002f3.141.0 (python linux)"}}
selenium-hub    |
diemol commented 1 year ago

Duplicate of https://github.com/SeleniumHQ/selenium/issues/11342