Перейти к содержимому

Фотография

Adress already in use(огибка при длительных тестах)


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 21

#1 Rinss

Rinss

    Новый участник

  • Members
  • Pip
  • 66 сообщений

Отправлено 22 декабря 2011 - 16:20

ОС - Ubuntu. Суть в том, что при тестах с большими цыклами(более 2к+ элементов), иногда, при чем рандомно, падают автотесты с ошибкой Adress already in use, как удалось выяснить - адресс этот 4444(дефолтный порт селениум-сервера). Под виндой такой пробемы не возникает. Делать стоп-старт сервера возможности нет. Подскажите пожалуйста как можно починить такое безобразие?
  • 0

#2 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 22 декабря 2011 - 17:18

Ничего не понял :) Что в циклах-то? Адрес и порт - разные вещи всё-таки.
  • 0

#3 Rinss

Rinss

    Новый участник

  • Members
  • Pip
  • 66 сообщений

Отправлено 23 декабря 2011 - 09:07

суть в том, что у меня есть серия тестов и иногда(вернее всегда, но в рандомном месте), выдается ошибка adress already in use. И в браузере ошибка, что не может приконектится к порту 4444. Под виндой - все норм, но тесты запускаются на linux машине. В винде пофиксилось изменением параметра в реестре TcpTimedWaitDelay
  • 0

#4 Rinss

Rinss

    Новый участник

  • Members
  • Pip
  • 66 сообщений

Отправлено 23 декабря 2011 - 09:17

гугление на эту тему дало лишь подсказку, что селениум-сервер, после отработки тестов не закрывает сессию и порт 4444 занят.
  • 0

#5 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 23 декабря 2011 - 12:00

Всё равно непонятно, где эта ошибка возникает? Какой лог RC при этом? Какой полный стектрейс ошибки и что собственно дёргал тест (какая команда)?
Конечно RC не закрывает порт 4444, он на нём висит и постоянно слушает входящие соединения. А вот если в этот момент попытаться запустить ещё один RC, то и будет такая ошибка. Вы, случаем, не программно RC запускаете?
  • 0

#6 Rinss

Rinss

    Новый участник

  • Members
  • Pip
  • 66 сообщений

Отправлено 23 декабря 2011 - 12:33

запуск идет на удаленном сервере, через Hudson(но ошибка появляется и на десктопе)
1. запус RC осуществляется shell командой 1 раз.
2. к сожалению текст ошибки дать не могу, так как логи гигантские и выловить что-то понятное вам не удастся. как я понимаю, RC слушает порт 4444, а во время запуска тестов туда идут конекты.
3. на сколько я понял, проблема в Time_Wait, из-за слишком большого таймаута при большом количестве запросов и возникает такая проблема.
После каждого теста по-пробую делать selenium.stop и уменьшу время таймаута до 15 секунд. Кстати, подскажите пожалуйста, консоль, которая появляется во время ранинга тестов(на ряду с самим браузером) как называется?
  • 0

#7 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 23 декабря 2011 - 12:55

Уже несколько лет пользуюсь связкой Ubuntu/Debian + Selenium + Grid (30 RC на 3х серверах), тесты гоняются круглые сутки, примерно в 4-20 потоков и ни разу такой ошибки не было.
Второе окошко - это управляющее окно Selenium Core если используете Selenium v<2.
  • 0

#8 Rinss

Rinss

    Новый участник

  • Members
  • Pip
  • 66 сообщений

Отправлено 23 декабря 2011 - 13:47

спасибо, даже не знаю в чем проблема. буду мучать дальше
  • 0

#9 Rinss

Rinss

    Новый участник

  • Members
  • Pip
  • 66 сообщений

Отправлено 23 декабря 2011 - 15:15

странно, в логах сервера нет никакой ошибки, просто зависает на последнем действии, пишет, что все выполнил ок. Ошибка выдается в логе. Даже не знаю, что делать
  • 0

#10 Misha_NSK

Misha_NSK

    Новый участник

  • Members
  • Pip
  • 58 сообщений


Отправлено 23 декабря 2011 - 18:07

странно, в логах сервера нет никакой ошибки, просто зависает на последнем действии, пишет, что все выполнил ок. Ошибка выдается в логе. Даже не знаю, что делать

Посмотрите логи хттп соединений, прикрутите в нужных местах логирование и смотрите где что и как:)
Скорее всего вы ломитесь на занятый соккет.
  • 0

#11 Rinss

Rinss

    Новый участник

  • Members
  • Pip
  • 66 сообщений

Отправлено 26 декабря 2011 - 07:54

да то, что сокет занят - это понятно. не понятно почему? тесты все одинаковые, ничего нового не появляется. почему сокет не отваливается? или я пытаюсь его запросить раньше чем он освобождается? как прикрутить http логи?
  • 0

#12 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 26 декабря 2011 - 09:12

Возможно, у вас этот баг: http://code.google.c...s/detail?id=923
Если так, то он был исправлен здесь: http://code.google.c.../detail?r=10082
Правда баг этот проявлялся в основном на Windows.
  • 0

#13 Rinss

Rinss

    Новый участник

  • Members
  • Pip
  • 66 сообщений

Отправлено 26 декабря 2011 - 09:37

подозревал что-то подобное. Правда я так и понял, как починить этот баг? Там лежат 2 прикрепленных файла, что нужно с ними сделать?
  • 0

#14 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 26 декабря 2011 - 09:56

Просто скачайте новый Selenium.
  • 0

#15 Rinss

Rinss

    Новый участник

  • Members
  • Pip
  • 66 сообщений

Отправлено 26 декабря 2011 - 09:59

стоит 2.15, ошибка не пропала, видимо не то
  • 0

#16 Rinss

Rinss

    Новый участник

  • Members
  • Pip
  • 66 сообщений

Отправлено 26 декабря 2011 - 10:59

ничего не понимаю. поставил сейчас в цикл тест на большое количество выполнений команд типа get_text, уже 30 мин идет нормально, думал, что сфейлится намного быстрее.
  • 0

#17 Rinss

Rinss

    Новый участник

  • Members
  • Pip
  • 66 сообщений

Отправлено 26 декабря 2011 - 12:21

сделал цикл из запросов типа selenium.get_text, через мин 40 выдало эту же ошибку, конекчусь через 4449 порт. уже даже и не знаю, что делать
  • 0

#18 Misha_NSK

Misha_NSK

    Новый участник

  • Members
  • Pip
  • 58 сообщений


Отправлено 27 декабря 2011 - 04:01

сделал цикл из запросов типа selenium.get_text, через мин 40 выдало эту же ошибку, конекчусь через 4449 порт. уже даже и не знаю, что делать

Валятся все тесты или какая-то их группа?
  • 0

#19 Rinss

Rinss

    Новый участник

  • Members
  • Pip
  • 66 сообщений

Отправлено 27 декабря 2011 - 09:04

проходит ровно 49 минут и все валится, для имитации ошибки создал метод, который просто делает много раз get_text(цыкл для получения данных из таблиц). копаю глубже, так как пишу на пайтоне начал смотреть как скрпит конектится, перебираю библиотеку httplib
  • 0

#20 Misha_NSK

Misha_NSK

    Новый участник

  • Members
  • Pip
  • 58 сообщений


Отправлено 27 декабря 2011 - 09:53

ну да, наверное httplib будет замечательным решением, если в тестах нет необходимости поднимать браузер.
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных