Запускаю тесты в selenium grid параллельно. 4 компьютера: в одном hub, остальные 3 для браузеров (Windows, Linux, Linux). Число потоков 10, используется только браузер firefox 27.0, версия selenium у всех машинах одинаковые 2.41.0. Потоки запускаются для каждого класса, браузер открывается и закрывается для каждого класса. В основном все работает нормально.
Но в какой то момент один из ноды блокируется и не запускается браузер. Ошибки вот такие (полный stack trace в файле exception-stack-trace.txt) :
org.openqa.selenium.WebDriverException: Unable to bind to locking port 7054 within 45000 ms.
Если в одном ноде возникает такая ошибка, то он больше не доступен. Все отправленные тесты на эту машину проваливаются. Помогает только перезагрузка ноды. Если в этом машине остановить selenium node, то появляется окошка firefox, с сообщением:
"Не удалось загрузить ваш профиль "Firefox". Возможно, он отсутствует или недоступен."
Проблема в том, что такая ошибка возникает не стабильно, не могу воспроизвести и понять причину. Полагаю, ошибка возникает только в Linux машинах, пока не видел такую проблему в Windows.
В коде вроде все нормально, метод, запускающий браузера synchronized (см. файл WebDriverRun.txt). Прошу помочь разобраться проблемой или хотя бы указать на возможные причины.
Конфигурация hub:
{ "host": x.x.x.x, "port": 4444, "cleanUpCycle": 500, "timeout": 120000, "maxSession": 40, "newSessionWaitTimeout": 120000, "nodePolling": 5000, "throwOnCapabilityNotPresent": false, }
{ "configuration": { "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "maxSession": 5, "port": 5555, "host": x.x.x.x, "register": true, "registerCycle": 1000, "hubPort": 4444, "hubHost": x.x.x.x, "nodeTimeout": 120 }, "capabilities": [ { "browserName": "firefox", "maxInstances": 5, "seleniumProtocol": "WebDriver" } ] }
(Если много грамматических ошибок, прошу прощения.)