qa-dev / jsonwire-grid

High-performance scalable implementation of Selenium Grid
MIT License
73 stars 10 forks source link

Сессия отрубается примерно через 2 минуты после старта #35

Closed CyHuH closed 5 years ago

CyHuH commented 5 years ago

Использую Appium с иос симулятором

  1. Запускаю тесты
  2. Начинается запуск сессии, выкачивание/установка приложения и т.д.
  3. Примерно через 1.5 - 2 минуты получаю ошибку:
    HOOK-ERROR in before_all: WebDriverException: Message: <html>
    <head><title>504 Gateway Time-out</title></head>
    <body bgcolor="white">
    <center><h1>504 Gateway Time-out</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    HOOK-ERROR in after_all: AttributeError: 'Context' object has no attribute 'driver'

в логах грида http: proxy error: round trip to node: context canceled

В общем хотелось бы уметь ставить время этого ожидания чуть подольше, чем 1.5 - 2 минуты (хотя бы указать, где в коде это можно поменять)

andrskom commented 5 years ago

Спасибо, за подробное описание проблемы. Сейчас посмотрю

CyHuH commented 5 years ago

Добавлю, что если убрать из capabilities что-то времязатратное, например "clearSystemFiles": "true", старт сессии укладывается в ~2 минуты и тесты стартуют успешно.

andrskom commented 5 years ago

@podtserkovskiy Посмотри пожалуйста транспорт раундтрипера на создание сессии, там он дефолтный, надо сделать конфигурируемым. Там сейчас dialer с таймаутом 30 секунд и idle 90 выставлен(в дефолтном).

podtserkovskiy commented 5 years ago

Меня удивляет вот это:

<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx</center>

Это не ошибка грида, это ошибка от nginx и возникает она когда сервер на который проксируется запрос, то есть grid отвечает дольше установленного таймаута. Я думаю проблема решится (или мы увидим истинную ошибку, если она есть) если увеличить таймауты на nginx до времени достаточного на создание сессии в Appium. Могу лишь предположить что дело в настройках из семейства proxy_.*_timeout. https://nginx.org/ru/docs/http/ngx_http_proxy_module.html Напишите пожалуйста о том на как изменится ответ после правок таймаутов.

CyHuH commented 5 years ago

Да, видимо в nginx была проблема, поставили proxy_read_timeout 30m, чтобы наверняка и пока, вроде, полет нормальный

andrskom commented 5 years ago

Отлично @podtserkovskiy Я так понимаю что контекст отваливался из-за того что nginx рвал соединение? Если да то закрой issue, если нет то проверь этот момент.

podtserkovskiy commented 5 years ago

Да именно из за этого