Вопрос к разработчикам. Как детектить зависшие браузеры Chromium?

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
773
Благодарностей
517
Баллы
93
У ZP при работе с Chromium есть серьезный баг - завасиние инстансов, верней создание браузеров, которые не используются ZP, а просто висят в Процессах и кушают память, это продолжается пока не перезапустить ZP.
Топик: https://zennolab.com/discussion/threads/zennoposter-7-7-4-chromium-ne-umirajut-instansy.114295/

Мой скрин:
111445

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

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 302
Благодарностей
702
Баллы
113
Я конечно не разработчик, но скажу так. В восьмерке этого бага не будет, ждите обновления
 

искра

Client
Регистрация
07.06.2014
Сообщения
280
Благодарностей
23
Баллы
18
Я конечно не разработчик, но скажу так. В восьмерке этого бага не будет, ждите обновления
откуда информация? и еще вариант который так же сильно всех волнует, шаблоны придется переписывать?
 

alex1988

Client
Регистрация
13.07.2014
Сообщения
381
Благодарностей
158
Баллы
43

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
773
Благодарностей
517
Баллы
93

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 674
Благодарностей
1 266
Баллы
113
Было решено сделать костыль в виде убийцы процессов, но тут встал другой вопрос, как детектить эти процессы?
Если решение свое, в начале работы шаблона при поднятии инстанса получаешь его Pid, заносишь куда-нибудь во внешнюю базу (ну или файлик). В конце работы - удаляешь его из базы. Отдельным решением отлавливаешь долго висящие "в работе" процессы, точечно их убиваешь.
Ну, это просто как предложение/костыль ))
 

alex1988

Client
Регистрация
13.07.2014
Сообщения
381
Благодарностей
158
Баллы
43
Если решение свое, в начале работы шаблона при поднятии инстанса получаешь его Pid, заносишь куда-нибудь во внешнюю базу (ну или файлик). В конце работы - удаляешь его из базы. Отдельным решением отлавливаешь долго висящие "в работе" процессы, точечно их убиваешь.
Ну, это просто как предложение/костыль ))
Но зенка возвращает не пид инстансса - а его родителя- тоесть процеса заннопостер и получается что у всех инстансов одинаковый пид(( Или ткните носом - может не правильно что то делаю((
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 674
Благодарностей
1 266
Баллы
113
Но зенка возвращает не пид инстансса - а его родителя- тоесть процеса заннопостер и получается что у всех инстансов одинаковый пид(( Или ткните носом - может не правильно что то делаю((
C#:
var pid = instance.FormTitle;
return pid;
Что отдает? Не у зенки пока, не проверить....

update: Добрался, проверил:
111463

ps. Ни на что не претендую, не исключено, что есть какие-то особенности. И не все так, как я могу себе представлять ))) Просто разговор зашел про pid )))
 
Последнее редактирование:

Juniorcpa

Client
Регистрация
27.05.2014
Сообщения
2 031
Благодарностей
1 286
Баллы
113
Может из коробки разрабы добавят просто "грох" зависших моментов.) Им вроде проще это сделать)
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 674
Благодарностей
1 266
Баллы
113
Продолжаем эксперимент )))
111464
Уже интереснее. Судя по всему, после завершения потока pid освобождается и может быть взят следующим потоком (здесь не всегда брался предыдущий, возможно, не успевало "базу отпустить").
Мне кажется, что работающий/зависший поток не должен освобождать pid для других, т.е., если будет 20 потоков - данные у них будут уникальные. Но на истину не претендую. Дальше уже только личные тесты )) Я чисто так, беседу поддержать )))
 
  • Спасибо
Реакции: Dmitriy Ka

alex1988

Client
Регистрация
13.07.2014
Сообщения
381
Благодарностей
158
Баллы
43
О как интересно стало - браузер точно хромиум?
111467
 
  • Спасибо
Реакции: Moonwalker

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
773
Благодарностей
517
Баллы
93
Продолжаем эксперимент )))
Уже интереснее. Судя по всему, после завершения потока pid освобождается и может быть взят следующим потоком (здесь не всегда брался предыдущий, возможно, не успевало "базу отпустить").
Мне кажется, что работающий/зависший поток не должен освобождать pid для других, т.е., если будет 20 потоков - данные у них будут уникальные. Но на истину не претендую. Дальше уже только личные тесты )) Я чисто так, беседу поддержать )))
У меня Pid instanca не совпадает с Pid процессов браузера
111469
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 674
Благодарностей
1 266
Баллы
113
О как интересно стало - браузер точно хромиум?
Правильный вопрос ))) Только сейчас до конца обратил внимание на название темы. ))
Нет, у меня тестился CEF (я в целом 95% задач до сих пор им решают, слишком уж сырой/нестабильный Хромиум). На момент тестов даже не подумал, что у Хромиума может быть другое поведение. Но теперь, думаю, что возможно. Надо копать дальше, смотреть, что еще можно получить ))) Ну либо смотреть, в какой момент поднимается инстанс. Может быть, немного логику поправить (в CEF простой шаб был, который просто запускался с автоматическим инстансом), посмотреть, в какой момент запрашивать данные.
Я тут скорее для "поучаствовать в поисках истины" влезал ))) Сам в хромиум так глубоко погружаться чего-то не хочу. Так что, звиняйте, если ввел в заблуждение и направление неверное ))
 
  • Спасибо
Реакции: alex1988

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
773
Благодарностей
517
Баллы
93
Эксперименты привели к тому, что у меня instance Pid это Pid ProjectMaker.

Скрин:
1) - var pid = instance.FormTitle;
2) - процесс PM
3) - процессы браузера PM
111472
 

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