aerokube / selenoid

Selenium Hub successor running browsers within containers. Scalable, immutable, self hosted Selenium-Grid on any platform with single binary.
https://aerokube.com/selenoid/latest/
Apache License 2.0
2.57k stars 322 forks source link

Android 8.1 - Android 10 #1018

Closed enjoy-del closed 7 months ago

enjoy-del commented 3 years ago

Добрый день! Коллеги, столкнулся с такой проблемой, у нас автотесты запускаются на Android 8.1 . С ним все хорошо, все запускается, проблем никаких. Решили обновится до Android 10 и тут столкнулись с проблемой. Скачали образ Android 10 ver10

Скачали последние образы selenoid verselenoid

Сами запуски докеров с логами запусков docker start

Конфиг browser.json verandroid

За версиями образов андроид 8.1 и 10.0

Селеноид все видит. ping

Дальше запускаем на Android 8.1: 81

Ответ пришел и все ок, в ui все видно,все запускается.

run81

И теперь запускаем на Android 10.0: run10

и он просто весит при отправке запроса и падает по таймауту. в UI он видит что появился запрос на создание сессии и на этом все. sel

Контейнер создался images

Логи контейнера: logimages

Лог selenoid: logselenoid

Лог ui: logui

Вопрос, что ему нужно? Или чего не хватает? С 8.1 проблем нет вообще.

ОС: OS

Докер: docker

vania-pooh commented 3 years ago

@enjoy-del попробуйте собрать образ на том же хосте из исходников. Если не совпадают версии ядер на хосте и в образе, то может не загружаться.

enjoy-del commented 3 years ago

@vania-pooh Ваня не сочти за наглость, но можно поподробнее про сборку из исходников? пример может есть? или небольшое описание? Или мне просто взять образ ваш 10.0 в качестве основы и еще раз собрать образ? банально через Dockerfile?

vania-pooh commented 3 years ago

@enjoy-del нужно склонировать исходники и запустить скрипт, как написано вот здесь: https://aerokube.com/images/latest/#_building_procedure

enjoy-del commented 3 years ago

Привет. Пересобрали все. Ушла ошибка qemu. Но все так же весит, не запускает эмулятор. Что еще можно попробовать?

[selenium@srvap1475 config]$ docker ps
CONTAINER ID        IMAGE                                      COMMAND                  CREATED             STATUS              PORTS                                                                       NAMES
d1999d2dd06f        seis.rccf.ru:8015/autotests/android:8664   "/entrypoint.sh"         5 minutes ago       Up 5 minutes        0.0.0.0:35099->4444/tcp, 0.0.0.0:35098->5900/tcp, 0.0.0.0:35097->8080/tcp   wonderful_heisenberg
e5e2fc4f9c28        selenoidlog:8665                           "./selenoid-ui --s..."   5 minutes ago       Up 5 minutes        3128/tcp, 4444/tcp, 0.0.0.0:8080->8080/tcp                                  xenodochial_lamport
2ee9ae96e593        selenoidlog:8665                           "./selenoid -mem 1..."   5 minutes ago       Up 5 minutes        0.0.0.0:3128->3128/tcp, 0.0.0.0:4444->4444/tcp                              dazzling_roentgen
[selenium@srvap1475 config]$ docker logs d1999d2dd06f
Waiting X server...
Warning: Failed to set locale, reverting to "C"
Logging to: /tmp/fluxbox.log
Waiting X server...
* daemon not running; starting now at tcp:5037

 --- x11vnc loop: 1 ---

* daemon started successfully
adb: no devices/emulators found
WARNING. Using fallback path for the emulator registration directory.
emulator: WARNING: System image is writable
emulator: WARNING: UpdateCheck: Failure: Error
emulator: WARNING: UpdateCheck: failed to get the latest version, skipping check (current version '30.2.6-6962233')
 --- x11vnc loop: waiting for: 155

PORT=5900
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline
[selenium@srvap1475 config]$ docke ps
-bash: docke: command not found
[selenium@srvap1475 config]$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                            NAMES
e5e2fc4f9c28        selenoidlog:8665    "./selenoid-ui --s..."   14 minutes ago      Up 14 minutes       3128/tcp, 4444/tcp, 0.0.0.0:8080->8080/tcp       xenodochial_lamport
2ee9ae96e593        selenoidlog:8665    "./selenoid -mem 1..."   14 minutes ago      Up 14 minutes       0.0.0.0:3128->3128/tcp, 0.0.0.0:4444->4444/tcp   dazzling_roentgen
[selenium@srvap1475 config]$ docker logs e5e2fc4f9c28
2020/11/20 09:41:02 Listening on :8080
2020/11/20 09:41:05 Client added. 1 registered clients
2020/11/20 09:48:20 Client added. 2 registered clients
[selenium@srvap1475 config]$ dockder logs 2ee9ae96e593
-bash: dockder: command not found
[selenium@srvap1475 config]$ docker logs 2ee9ae96e593
2020/11/20 09:40:59 [-] [INIT] [Loading configuration files...]
2020/11/20 09:40:59 [-] [INIT] [Loaded configuration from config/browsers.json]
2020/11/20 09:40:59 [-] [INIT] [Loaded log configuration from config/container-logs.json]
2020/11/20 09:40:59 [-] [INIT] [Video Dir: /opt/selenium/video]
2020/11/20 09:40:59 [-] [INIT] [Using Docker API version: 1.24]
2020/11/20 09:40:59 [-] [INIT] [Timezone: Local]
2020/11/20 09:40:59 [-] [INIT] [Listening on :4444]
2020/11/20 09:41:41 [-] [NEW_REQUEST] [unknown] [10.150.2.70]
2020/11/20 09:41:41 [-] [NEW_REQUEST_ACCEPTED] [unknown] [10.150.2.70]
2020/11/20 09:41:41 [0] [LOCATING_SERVICE] [android] [10__android]
2020/11/20 09:41:41 [0] [USING_DOCKER] [android] [10__android]
2020/11/20 09:41:41 [0] [CREATING_CONTAINER] [seis.rccf.ru:8015/autotests/android:8664]
2020/11/20 09:41:41 [0] [STARTING_CONTAINER] [seis.rccf.ru:8015/autotests/android:8664] [d1999d2dd06f9e2f122ab7a0ba823a29b633fadc1380690472b922a2869a3950]
2020/11/20 09:41:41 [0] [CONTAINER_STARTED] [seis.rccf.ru:8015/autotests/android:8664] [d1999d2dd06f9e2f122ab7a0ba823a29b633fadc1380690472b922a2869a3950] [0.19s]
2020/11/20 09:51:41 [0] [REMOVING_CONTAINER] [d1999d2dd06f9e2f122ab7a0ba823a29b633fadc1380690472b922a2869a3950]
2020/11/20 09:51:42 [0] [CONTAINER_REMOVED] [d1999d2dd06f9e2f122ab7a0ba823a29b633fadc1380690472b922a2869a3950]
2020/11/20 09:51:42 [0] [SERVICE_STARTUP_FAILED] [wait: http://172.17.0.1:35099 does not respond in 10m0s]
enjoy-del commented 3 years ago

@vania-pooh может я что-то ему еще не отдаю в пост запросе?

curl -X POST 'http://srvap1475:4444/wd/hub/session' -d '{"desiredCapabilities":{"browserName":"android",
                "platformName":"Android",
                "app":"test.apk",
                "appActivity":"cz.bsc.rc.activity.Splash",
                "version": "10__android",
                "platform":"ANY",
                "enableVNC": true,
                "name": "this.test.is.launched.by.curl",
                "sessionTimeout": 3000s
            }}'
vania-pooh commented 3 years ago

@enjoy-del нужно передавать appPackage, иначе оне не знает какое приложение запускать.

enjoy-del commented 3 years ago

@vania-pooh указал, тоже самое. При этом на 8.1 все работает . Слушай, а версия докера играет какую-то роль в этом? И почему он пишет adb: device offline ?

vania-pooh commented 3 years ago

@enjoy-del нет это не зависит от Docker. Можно попробовать посмотреть на экран: запустить контейнер вручную:

$ docker run --privileged -p 4444:4444 -p 5900:5900 -e ENABLE_VNC=true selenoid/android:9.0

Дальше подключиться к localhost:5900 через VNC клиента с паролем selenoid и посмотреть что там происходит на экране. Может быть оно долго загружается.

enjoy-del commented 3 years ago

@vania-pooh , так - запустилось. И такая вот ошибка на фоне эмулятора. image

после нажатия ок- черный экран и пока не нажмешь на эмулятор (В любое место) он продолжает висеть с черным экраном. image

Как только на него нажимаешь, эмулятор закрывается и пустой рабочий стол. И контейнер не падает, просто пустой рабочий стол.

image

почему он так работает? Что-то не хватает ему?

enjoy-del commented 3 years ago

Кстати, то что выше - это мы сами собрали по твоей рекомендации из исходников. А вот я запустил ваш образ image

тут он хотябы загружает сам андроид, но после нажатия кнопки ок - не дает ничего натыкать :( такое ощущение что есть какая то фоновая ошибка, которая блочит нажатие на эмулятор. Но при этом если тыкнуть на меню справа ,где панель управления эмулятором - все закрывается. И снова пустой рабочий стол.

enjoy-del commented 3 years ago

т.е. после нажатия на ок: image

и тут все "весит" , не реагирует на нажатия в самом эмуляторе. Хотя на рабочий стол реагирует.

vania-pooh commented 3 years ago

@enjoy-del я все же думаю, что это тормозит из-за вложенной виртуализации.

wavesrcomn commented 3 years ago

Всем привет. Такая же проблема. Пытаюсь запустить тесты на 11.0 андроиде. Собрал образ скриптом с type google_apis и abi x86_64, остальное по дефолту, всё успешно. Но при запуске тестов эмулятор не запускается. До vnc не доходит. Падает по таймауту. Пример логов:

Waiting X server...
Waiting X server...
Logging to: /tmp/fluxbox.log
Waiting X server...
Waiting X server...
* daemon not running; starting now at tcp:5037
* daemon started successfully
adb: no devices/emulators found

 --- x11vnc loop: 1 ---

 --- x11vnc loop: waiting for: 75

PORT=5900
adb: no devices/emulators found
2021-08-31 07:55:23.843 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering beacon_swarm
2021-08-31 07:55:23.843 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering beacon
2021-08-31 07:55:23.843 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering scripted_beacon
2021-08-31 07:55:23.843 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering remote_loopback
2021-08-31 07:55:23.843 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering car_kit
2021-08-31 07:55:23.843 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering classic
2021-08-31 07:55:23.843 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering sniffer
2021-08-31 07:55:23.843 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering keyboard
handleCpuAcceleration: feature check for hvf
cannot add library /opt/android-sdk-linux/emulator/qemu/linux-x86_64/lib64/vulkan/libvulkan.so: failed
adb: no devices/emulators found
added library /opt/android-sdk-linux/emulator/lib64/vulkan/libvulkan.so
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
WARNING. Using fallback path for the emulator registration directory.
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline

или

Waiting X server...
Logging to: /tmp/fluxbox.log
Waiting X server...
* daemon not running; starting now at tcp:5037

 --- x11vnc loop: 1 ---

2021-08-31 07:14:37.714 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering beacon_swarm
2021-08-31 07:14:37.714 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering beacon
2021-08-31 07:14:37.714 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering scripted_beacon
2021-08-31 07:14:37.714 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering remote_loopback
2021-08-31 07:14:37.714 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering car_kit
2021-08-31 07:14:37.714 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering classic
2021-08-31 07:14:37.714 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering sniffer
2021-08-31 07:14:37.714 bluetooth - /buildbot/src/android/emu-master-dev/system/bt/vendor_libs/test_vendor_lib/model/setup/device_boutique.cc:33 - Register: Registering keyboard
handleCpuAcceleration: feature check for hvf
cannot add library /opt/android-sdk-linux/emulator/qemu/linux-x86_64/lib64/vulkan/libvulkan.so: failed
added library /opt/android-sdk-linux/emulator/lib64/vulkan/libvulkan.so
 --- x11vnc loop: waiting for: 100

PORT=5900
* daemon started successfully
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
adb: no devices/emulators found
WARNING. Using fallback path for the emulator registration directory.
emulator: WARNING: System image is writable
emulator: INFO: GrpcServices.cpp:315: Started GRPC server at 127.0.0.1:8554, security: Local
emulator: INFO: EmulatorAdvertisement.cpp:93: Advertising in: /root/.android/avd/running/pid_57.ini
Your emulator is out of date, please update by launching Android Studio:
 - Start Android Studio
 - Select menu "Tools > Android > SDK Manager"
 - Click "SDK Tools" tab
 - Check "Android Emulator" checkbox
 - Click "OK"

adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline
adb: device offline

Поискал в истории канала в телеге и попробовал всё, что нашел. Увеличил таймаут аж до 20m на случай долгой работы - не помогло. Увеличил размер sd до 1000 и userdata.img size до 1000 для решения проблемы cannot add library /opt/android-sdk-linux/emulator/qemu/linux-x86_64/lib64/vulkan/libvulkan.so: failed - не помогло и проблема не решилась.

В ручном режиме запускал контейнер, в нем открыт эмулятор с черным экраном и больше ничего не происходит. Аналогично для андроида 9 и 10, с 8.1 и ниже такой проблемы нет. Есть идеи в чем может быть проблема? Появились ли решения?

enjoy-del commented 2 years ago

@vania-pooh смотрю эта проблема воспроизводится у многих. Есть понимание в чем причина? @wavesrcomn получилось решить проблему?

vania-pooh commented 2 years ago

@enjoy-del например, может быть из-за включения google-apis.

enjoy-del commented 2 years ago

@vania-pooh а его можно как-то выключить на ваших готовых сборках? Через капабилити и тд

vania-pooh commented 2 years ago

@enjoy-del мы собираем без него.

enjoy-del commented 2 years ago

@vania-pooh а, это ты ответил коллеги выше. А в целом по моей проблеме не понятно почему окно выходит? без вложенной виртуализации никуда (

enjoy-del commented 2 years ago

@vania-pooh еще вопрос, а эти изменения уже есть в ваших сборках на докерхабе?

https://github.com/aerokube/images/commit/c1732f1bb199c924c7dfa54ff077f6186b30e30f

enjoy-del commented 2 years ago

собрали с файлом выше Emulator.conf , без него - выдает ошибку, с ним - ошибки нет, но тоже черный экран :(

vania-pooh commented 2 years ago

@enjoy-del в старых образах скорее всего нет этого файла.

traarttra commented 2 years ago

Всем привет! @vania-pooh, @enjoy-del, проблема решилась? У нас на версиях с 9 по 12 аналогичная проблема. На 8.1 всё ок. Всё вышеописанное пробовали.

Tanya96 commented 2 years ago

Всем привет! Тоже пытаемся решить эту проблему. @vania-pooh, @enjoy-del @traarttra коллеги, на чем образы собираете мак или линукс? Собираем на centOS и есть аналогичные проблемы. У кого-то вообще работает?

traarttra commented 2 years ago

@Tanya96, пробовали на всём: Мак, Винда, Линукс(тоже центос). Поведение везде одинаковое. Плюс есть проблема с командой resize2fs: "bad magic ...чего-то там"

vania-pooh commented 2 years ago

@traarttra это ок, там две команды через || выполняются.

traarttra commented 2 years ago

@vania-pooh, спасибо за ответ.

Но что делать с зависающим эмулятором? Собрал контейнер сперва с параметрами: image Далее произвожу запуск командой: docker run --rm -it --name selenoid --privileged -p 4444:4444 -p 5900:5900 -e ENABLE_VNC=true selenoid/android:12.0 Устройство появляется, но при попытке запуска какого-либо приложения валится. В логах следующее:

Waiting X server... Waiting X server... Logging to: /tmp/fluxbox.log Waiting X server... Waiting X server...

WARNING | System image is writable WARNING | unexpected system image feature string, emulator might not function correctly, please try updating the emulator. --- x11vnc loop: waiting for: 99

WARNING | cannot add library /opt/android-sdk-linux/emulator/qemu/linux-x86_64/lib64/vulkan/libvulkan.so: failed INFO | added library /opt/android-sdk-linux/emulator/lib64/vulkan/libvulkan.so PORT=5900 INFO | configAndStartRenderer: setting vsync to 60 hz INFO | Sending adb public key [QAAAAFOl56ElGSBwVeX94NYTvHlGrVWWyuddW7mKsBmsWrN54pD4dX4n2+nYG8yPjsVCuhzTwWBi7yvktfVaweuGXw3XD2jwqnOnFr/U69aLfnLAxu2KG7GzhKUenr+6lnXY4mfYUGvffa/P6A0NHiJ79DMRfCXGxUTBQVhvTzFHKka6iSfL7Hpfj77At9CRHR3qH+5CB+CuIXbRgR9z2fwrtdYE52J36sCrl1SxWKfhsz4ixTqc7JvSbXsuxIQY9bz5Dudvk9IQVWTvWcA3QQCMUjG0anrJydcoQL+n0Jh9AWhhdZO+/KcW6t8z7Rlok5lM5s4+6OHpbFUn6hcEy9CYqRTt65GZkSS2v+1wQ3iPpYK3keGdUNL4lqfHOt7PjzrdHSEJ+h/Ro6lzj2voFkYnAmDTIdhjLC7q3Vb4It4OKRyEjlHIHIQh4Ca0Ent4wOgaGNYry+c0hDi7W3QXQDu5YWPTZ7GztthijdRHQPAywnY5Ak+z+ayBIEU27O09askrJuSqN231CmvAm7dOP5lcPKxLiGxUIyILyukRj3FZeBuEF10DrgO9ukMgqsmRLW4MvAtyqCzoJJZUzkocsNivJU7oLrmkdJRDyUQn0mP8l7MxLkAE7c+ArrBwhqkL8cTEuriRSGfkoo1+2oqBNiw/MatWV4s2AVdVCIHYDg0tsEZIpoPAUQEAAQA= @unknown] INFO | Rootcanal has been activated. adb: no devices/emulators found adb: no devices/emulators found adb: no devices/emulators found adb: no devices/emulators found INFO | Started GRPC server at 127.0.0.1:8554, security: Local WARNING | Using fallback path for the emulator registration directory. INFO | Advertising in: /root/.android/avd/running/pid_69.ini adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline adb: device offline [69:69:0525/092209.540821:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180. adb: device offline adb: device offline /entrypoint.sh: line 70: 69 Segmentation fault (core dumped) ANDROID_AVD_HOME=/root/.android/avd DISPLAY="$DISPLAY" /opt/android-sdk-linux/emulator/emulator ${EMULATOR_ARGS} -writable-system -no-boot-anim -no-audio -no-jni -avd android12.0-1 -sdcard /sdcard.img -skin "$SKIN" -skindir /opt/android-sdk-linux/platforms/android-31/skins/ -gpu swiftshader_indirect -ranchu -qemu -enable-kvm

traarttra commented 2 years ago

@vania-pooh, интересно также то, что 12-й хотя бы запускается, а 10-й повисает намертво. Что-нибудь ещё можно попробовать? Может быть докинуть каких-то ещё логов для более точного понимания? Очень нужна ваша помощь :-)

vania-pooh commented 2 years ago

/entrypoint.sh: line 70: 69 Segmentation fault (core dumped) У вас процесс падает. Нужно собирать и запускать на одной и той же операционной системе. Желательно, чтобы версия ядра тоже совпадала.

traarttra commented 2 years ago

@vania-pooh, привет! Скажи, пожалуйста, а с виртуальными серверами вопрос не решён? На виртуальных машинах вообще не получится поднять нормальный контейнер? Может встречались какие-нибудь варианты, которые можно попробовать?

vania-pooh commented 2 years ago

@traarttra он очень медленно работает.

github-actions[bot] commented 8 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.