Зависает инстанс

vadim1281

Client
Регистрация
03.12.2015
Сообщения
138
Благодарностей
41
Баллы
28
Добрый вечер. Может кто подскажет как избавится от зависания инстанса
48703
В таком состоянии висит бесконечно. В результате забиваются потоки и перестает шаблон работать
Точнее не бесконечно, а очень долго. Потом вроде перезапускается
 
Последнее редактирование:

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
На каком этапе происходит известно? Надо ставить таймауты на загрузку страниц. Так же можно ставить таймауты в зенке на выполнение проекта.
 

vadim1281

Client
Регистрация
03.12.2015
Сообщения
138
Благодарностей
41
Баллы
28
На каком этапе происходит известно? Надо ставить таймауты на загрузку страниц. Так же можно ставить таймауты в зенке на выполнение проекта.
таймауты в зенке все стоят и они стандартные меньше минуты, то инстанс почему то висит по 10-15 минут
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Добрый вечер. Может кто подскажет как избавится от зависания инстанса
Посмотреть вложение 48703
В таком состоянии висит бесконечно. В результате забиваются потоки и перестает шаблон работать
Точнее не бесконечно, а очень долго. Потом вроде перезапускается
48704
48705
 
  • Спасибо
Реакции: baracuda и Metrix

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
таймауты в зенке все стоят и они стандартные меньше минуты, то инстанс почему то висит по 10-15 минут
Речь о таймауте для загрузки страниц. Выше на скрине смотрите.
 

Err0r

Client
Регистрация
17.05.2015
Сообщения
156
Благодарностей
109
Баллы
43
Вооо, и у меня такая же дичь твориться. Причем до нового года были зависания, а во время праздников только пару раз зависало, и сегодня опять началось.
 

vadim1281

Client
Регистрация
03.12.2015
Сообщения
138
Благодарностей
41
Баллы
28
Речь о таймауте для загрузки страниц. Выше на скрине смотрите.
Я не думаю что это как-то связано с таймаутами, т.к. иногда инстансы закрыты, а потоки все равно заняты, чем заняты не понятно. Просто видно в зенке что висят потоки
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Я не думаю что это как-то связано с таймаутами, т.к. иногда инстансы закрыты, а потоки все равно заняты, чем заняты не понятно. Просто видно в зенке что висят потоки
надо включить трассировку и проанализировать ход выполнения шаблона
 

vadim1281

Client
Регистрация
03.12.2015
Сообщения
138
Благодарностей
41
Баллы
28
Если включить отображение инстансов, то видно, что вот так зависают потоки.
 

Вложения

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Если включить отображение инстансов, то видно, что вот так зависают потоки.
то что потоки зависают, это обычное дело. главное понять где они зависают и как вывести логику в этом случае на BadEnd. тут 2 варианта. выводить в лог сообщения чуть ли не после каждого действия или анализировать трейсер.
 
  • Спасибо
Реакции: vadim1281

vadim1281

Client
Регистрация
03.12.2015
Сообщения
138
Благодарностей
41
Баллы
28
то что потоки зависают, это обычное дело. главное понять где они зависают и как вывести логику в этом случае на BadEnd. тут 2 варианта. выводить в лог сообщения чуть ли не после каждого действия или анализировать трейсер.
проанализировал, зависает на кубике с C# на 7 минут
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113

vadim1281

Client
Регистрация
03.12.2015
Сообщения
138
Благодарностей
41
Баллы
28
var tab = instance.ActiveTab;
for (int i=0; i<20; i++)
{
var he3 = tab.FindElementByAttribute("button", "type", "button", "regexp", 10);
if (!he3.IsVoid && he3.GetAttribute("height")!="0")
{
tab.Stop();
return "ok";
}
System.Threading.Thread.Sleep(500);
}
return null;


такой код, который ждет элемент
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
когда инстанс крашиться, то любая команда обращающаяся к баузеру и его элементам будет выполняться как таймаут выполнения операции в инстансе. вернее она не будет выполняться, а будет вылетать по таймауту. минимальная настройка 1 минута. в цикле 20 раз может выполниться вот эта команда var he3 = tab.FindElementByAttribute("button", "type", "button", "regexp", 10); соответственно максимум зависона около 20 минут. если после этого кубик выходит по return null; и не уходит на BadEnd все может повториться и шаблон будет висеть ну очень долго.
как вариант проверять внутри цикла tab.IsVoid хотя помогает редко. у меня пока обнаружиться что вкладка пустая, могло уйти на несколько кубиков и каждый тупил по 5-10 минут.
еще есть вариант измерять время выполнения команды FindElementByAttribute . обычно она выполняется 0-1 миллисикунду. и если по результатам измерения будет больше 60 секунд , надо выходить из шаблона, так как клиент скорее мертв чем жив.
 
  • Спасибо
Реакции: irving zisman и sydoow

vadim1281

Client
Регистрация
03.12.2015
Сообщения
138
Благодарностей
41
Баллы
28
когда инстанс крашиться, то любая команда обращающаяся к баузеру и его элементам будет выполняться как таймаут выполнения операции в инстансе. вернее она не будет выполняться, а будет вылетать по таймауту. минимальная настройка 1 минута. в цикле 20 раз может выполниться вот эта команда var he3 = tab.FindElementByAttribute("button", "type", "button", "regexp", 10); соответственно максимум зависона около 20 минут. если после этого кубик выходит по return null; и не уходит на BadEnd все может повториться и шаблон будет висеть ну очень долго.
как вариант проверять внутри цикла tab.IsVoid хотя помогает редко. у меня пока обнаружиться что вкладка пустая, могло уйти на несколько кубиков и каждый тупил по 5-10 минут.
еще есть вариант измерять время выполнения команды FindElementByAttribute . обычно она выполняется 0-1 миллисикунду. и если по результатам измерения будет больше 60 секунд , надо выходить из шаблона, так как клиент скорее мертв чем жив.
Ниче не понятно, но очень интересно.
Я этот скопировал где-то здесь на форуме, сам в с# не очень. Есть какой нибудь нормальный способ, ждать какое-то время пока загрузится элемент?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Ниче не понятно, но очень интересно.
Я этот скопировал где-то здесь на форуме, сам в с# не очень. Есть какой нибудь нормальный способ, ждать какое-то время пока загрузится элемент?
да если бы инстансы не крашились и этот метод норм :-)
в кубиках есть настройка ожидать элемент, но она не работает :bw:
поэтому либо городить кучу кубиков в цикле, либо кучу кода на C#
лучше на C# потому как когда инстанс упадет, кубик IF будет всегда выходить по красной :-) да, да по кругу засада.
есть еще один метод, но он не на сейчас. это долбить разработчиков по устранению багов :-)
 
  • Спасибо
Реакции: vadim1281

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 486
Благодарностей
8 692
Баллы
113
Добрый вечер. Может кто подскажет как избавится от зависания инстанса
Посмотреть вложение 48703
В таком состоянии висит бесконечно. В результате забиваются потоки и перестает шаблон работать
Точнее не бесконечно, а очень долго. Потом вроде перезапускается
Добрый вечер.
Попробуйте перед переходом на страницу выполнять экшен Браузер - Настройки - Состояние занятости.

48713
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 872
Благодарностей
1 118
Баллы
113
Вооо, и у меня такая же дичь твориться. Причем до нового года были зависания, а во время праздников только пару раз зависало, и сегодня опять началось.
проанализировал, зависает на кубике с C# на 7 минут
Я с вами ребята, мой кривой C# тоже периодически по 5 минут выполняется))
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 872
Благодарностей
1 118
Баллы
113
Добрый вечер.
Попробуйте перед переходом на страницу выполнять экшен Браузер - Настройки - Состояние занятости.

Посмотреть вложение 48713
С логом который я вам писал в лс баг не поправили? Сделайте галочку, чтобы он сразу отображался как раньше, а не через танцы с бубном и переходом в другие вкладки и назад
 

Viking01

Client
Регистрация
19.08.2017
Сообщения
228
Благодарностей
151
Баллы
43
когда инстанс крашиться, то любая команда обращающаяся к баузеру и его элементам будет выполняться как таймаут выполнения операции в инстансе. вернее она не будет выполняться, а будет вылетать по таймауту. минимальная настройка 1 минута. в цикле 20 раз может выполниться вот эта команда var he3 = tab.FindElementByAttribute("button", "type", "button", "regexp", 10); соответственно максимум зависона около 20 минут. если после этого кубик выходит по return null; и не уходит на BadEnd все может повториться и шаблон будет висеть ну очень долго.
как вариант проверять внутри цикла tab.IsVoid хотя помогает редко. у меня пока обнаружиться что вкладка пустая, могло уйти на несколько кубиков и каждый тупил по 5-10 минут.
еще есть вариант измерять время выполнения команды FindElementByAttribute . обычно она выполняется 0-1 миллисикунду. и если по результатам измерения будет больше 60 секунд , надо выходить из шаблона, так как клиент скорее мертв чем жив.
я правильно понимаю, что когда инстанс крашится, то даже активная страничка, где уже хтмл хоть частично загружен, будет не доступна?
то есть, мысль такая - повесить асинхронный метод, который будет проверять наличие <head> к примеру в открытой вкладке и при отссутствии - убивать поток?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
я правильно понимаю, что когда инстанс крашится, то даже активная страничка, где уже хтмл хоть частично загружен, будет не доступна?
то есть, мысль такая - повесить асинхронный метод, который будет проверять наличие <head> к примеру в открытой вкладке и при отссутствии - убивать поток?
не получит он никакого хеада. все команды в этом потоке то же зависнут. в памяти уже нет такого объекта как браузер и будет генерироваться исключение.
тут только мерять время выполнения команд которые взаимодействуют с браузером.
 

Viking01

Client
Регистрация
19.08.2017
Сообщения
228
Благодарностей
151
Баллы
43
не получит он никакого хеада. все команды в этом потоке то же зависнут. в памяти уже нет такого объекта как браузер и будет генерироваться исключение.
тут только мерять время выполнения команд которые взаимодействуют с браузером.
ну, а я про что говорю? если команда не вернула хедер/вернула ошибку = грохнуть поток.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113

vadim1281

Client
Регистрация
03.12.2015
Сообщения
138
Благодарностей
41
Баллы
28
Все было бы хорошо, если бы работала штука "ждать элемент не более" которая есть в кубике. Но она почему то не работает, если есть уход по красной линии
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Все было бы хорошо, если бы работала штука "ждать элемент не более" которая есть в кубике. Но она почему то не работает, если есть уход по красной линии
это баг. я его где то видел даже в багтрекере. давно уже висит. но там нет про красную линию. можете подробно описать и оформить баг. это полезное дело для всех.
 

Err0r

Client
Регистрация
17.05.2015
Сообщения
156
Благодарностей
109
Баллы
43
Я на одном шаблоне вылечил зависание убрав код C# из него заменив кубиками, пока не единого зависания.
 

vadim1281

Client
Регистрация
03.12.2015
Сообщения
138
Благодарностей
41
Баллы
28
это баг. я его где то видел даже в багтрекере. давно уже висит. но там нет про красную линию. можете подробно описать и оформить баг. это полезное дело для всех.
Если сделать так, то все норм, кубик будет ждать элемент 30 сек и завершиться с ошибкой если не найдет.
48769

а если так, то не будет ждать 30 сек, моментально завершается, если нет элемента

48770
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 486
Благодарностей
8 692
Баллы
113
Если сделать так, то все норм, кубик будет ждать элемент 30 сек и завершиться с ошибкой если не найдет.
Посмотреть вложение 48769

а если так, то не будет ждать 30 сек, моментально завершается, если нет элемента

Посмотреть вложение 48770
Ожидается исправление этой особенности.
Программисты в курсе.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Если сделать так, то все норм, кубик будет ждать элемент 30 сек и завершиться с ошибкой если не найдет.
Посмотреть вложение 48769

а если так, то не будет ждать 30 сек, моментально завершается, если нет элемента

Посмотреть вложение 48770
создал тему в багтрекере. https://zennolab.com/discussion/threads/funkcija-zhdat-ehlement-ne-bolee-rabotaet-strannym-obrazom.72975/
заходим и голосуем
 
Регистрация
23.03.2020
Сообщения
1
Благодарностей
0
Баллы
1
А у меня зависают инстансы уже после загрузки страницы. В какой-то момент загруженная страница сайта просто фризится и все! Запускаю по 20 потоков и они постепенно выбывают из работы. В течение полутора часов - останавливаются в итоге 15-17 из 20. Временно помогает перезагрузка постера. и так на следующие полтора часа.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)