Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Show detailed error message when manual session can't start #410

Open
TimurNurlygayanov opened this issue Feb 4, 2021 · 4 comments
Open

Comments

@TimurNurlygayanov
Copy link

Hi, I'm trying to start Android emulator in docker and my setup is the following:

Base OS: MacOS Catalina 10.15.7
Docker version 20.10.2, build 2291f61

browser.json:

{
  "android": {
    "default": "10.0",
    "versions": {
      "10.0": {
        "image": "selenoid/android:10.0",
        "port": "4444",
        "path": "/wd/hub",
        "selenoid:options": {
          "enableVNC": true,
          "enableVideo": true
        }
      }
    }
  }
}

docker-compose.yml:

version: '3'
services:
  selenoid:
    image: "aerokube/selenoid"
    network_mode: bridge
    ports:
      - "4444:4444"
    volumes:
      - "$PWD/config:/etc/selenoid/" # assumed current dir contains browsers.json
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "$PWD/video:/opt/selenoid/video"
      - "$PWD/logs:/opt/selenoid/logs"
    environment:
      - OVERRIDE_VIDEO_OUTPUT_DIR=$PWD/video
    command: ["-conf", "/etc/selenoid/browsers.json", "-video-output-dir", "/opt/selenoid/video", "-log-output-dir", "/opt/selenoid/logs"]
  selenoid-ui:
    image: "aerokube/selenoid-ui"
    network_mode: bridge
    links:
      - selenoid
    ports:
      - "8080:8080"
    command: ["--selenoid-uri", "http://selenoid:4444"]

So, when I open SelenoidUI at http://localhost:8080/#/capabilities/ and click "Create Session", the request fails with the error:

POST http://localhost:8080/wd/hub/session
status code 500 Internal Server Error
Response Body:
{"status":13,"value":{"message":"wait: http://172.17.0.4:4444/wd/hub does not respond in 30s"}}

More info:

docker ps -a
CONTAINER ID   IMAGE                  COMMAND                  CREATED          STATUS                    PORTS                    NAMES
a823c23ffd9d   aerokube/selenoid-ui   "/selenoid-ui --sele…"   34 minutes ago   Up 34 minutes (healthy)   0.0.0.0:8080->8080/tcp   selenoid-android_selenoid-ui_1
9a0f732951c1   aerokube/selenoid      "/usr/bin/selenoid -…"   34 minutes ago   Up 34 minutes             0.0.0.0:4444->4444/tcp   selenoid-android_selenoid_1
 docker image list -a
REPOSITORY             TAG              IMAGE ID       CREATED         SIZE
aerokube/selenoid      latest           c0ab90eb2ac0   2 weeks ago     16.8MB
aerokube/selenoid      latest-release   c0ab90eb2ac0   2 weeks ago     16.8MB
aerokube/selenoid-ui   latest           800e1f3d15fa   4 weeks ago     17.5MB
selenoid/android       10.0             78cbc1c22916   4 months ago    9.33GB
selenoid/android       7.0              0acd62321707   4 months ago    7.09GB

selenoid logs:

docker logs 9875f35a5a41
2021/02/04 17:51:44 [-] [INIT] [Loading configuration files...]
2021/02/04 17:51:44 [-] [INIT] [Loaded configuration from /etc/selenoid/browsers.json]
2021/02/04 17:51:44 [-] [INIT] [Video Dir: /opt/selenoid/video]
2021/02/04 17:51:44 [-] [INIT] [Logs Dir: /opt/selenoid/logs]
2021/02/04 17:51:44 [-] [INIT] [Your Docker API version is 1.41]
2021/02/04 17:51:44 [-] [INIT] [Timezone: UTC]
2021/02/04 17:51:44 [-] [INIT] [Listening on :4444]
2021/02/04 17:51:58 [-] [NEW_REQUEST] [unknown] [172.17.0.1]
2021/02/04 17:51:58 [-] [NEW_REQUEST_ACCEPTED] [unknown] [172.17.0.1]
2021/02/04 17:51:58 [3] [LOCATING_SERVICE] [android] [10.0]
2021/02/04 17:51:58 [3] [USING_DOCKER] [android] [10.0]
2021/02/04 17:51:58 [3] [CREATING_CONTAINER] [selenoid/android:10.0]
2021/02/04 17:51:58 [3] [STARTING_CONTAINER] [selenoid/android:10.0] [142d98e040eb00a7c572bfd9de19cb66eebf2b2753259942ccfc17976cd32bc4]
2021/02/04 17:51:58 [3] [CONTAINER_STARTED] [selenoid/android:10.0] [142d98e040eb00a7c572bfd9de19cb66eebf2b2753259942ccfc17976cd32bc4] [0.29s]
2021/02/04 17:52:28 [3] [REMOVING_CONTAINER] [142d98e040eb00a7c572bfd9de19cb66eebf2b2753259942ccfc17976cd32bc4]
2021/02/04 17:52:28 [3] [CONTAINER_REMOVED] [142d98e040eb00a7c572bfd9de19cb66eebf2b2753259942ccfc17976cd32bc4]
2021/02/04 17:52:28 [3] [SERVICE_STARTUP_FAILED] [wait: http://172.17.0.4:4444/wd/hub does not respond in 30s]

What am I doing wrong?

@TimurNurlygayanov
Copy link
Author

Update:
I've tried to add option

-service-startup-timeout 2m

But it didn't help, the error now is the same:

wait: http://172.17.0.4:4444/wd/hub does not respond in 2m0s

@TimurNurlygayanov
Copy link
Author

Ok we can close the issue, I've found the following error in android docker container:

emulator: ERROR: x86 emulation currently requires hardware acceleration!
CPU acceleration status: KVM requires a CPU that supports vmx or svm

adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found

It looks like my configuration doesn't support hardware acceleration for the emulator.

@vania-pooh
Copy link
Member

@TimurNurlygayanov Android images will not work under Mac because Docker for Mac does not forward KVM capabilities of the CPU.

@TimurNurlygayanov
Copy link
Author

@vania-pooh I noticed that SelenoidUI doesn't show any errors in case solenoid can't start the session, and the user has to check the dev console to see the error message from the backend. Maybe we can improve UX and add some information about error messages to Selenoid WebUI? (so it is not urgent)

@vania-pooh vania-pooh changed the title Selenoid Android: can't start session - wait: http://172.17.0.4:4444/wd/hub does not respond in 30s Show detailed error message when manual session can't start Feb 5, 2021
@vania-pooh vania-pooh transferred this issue from aerokube/selenoid Feb 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants