Критический баг в BAS / Наследует старые переменные-профили и игнорирует многие действия (при этом продолжая "работать")

Поддержка
  • В BAS есть несколько способов сброса - профили, restart браузера, создание нового потока и т.д.
    Но всё это страшно нагружает CPU как известно.
    Кроме того под некоторые задачи смена браузера(или профиля) в принципе не нужна, достаточно бесконечного цикла и действий внутри него.

    Я вывел для себя простую схему сброса через настройки хрома - chrome://settings/clearBrowserData.
    Когда простой чистки fingerprint и cookie недостаточно, потому что некоторые сайты используют local storage например в том числе.

    Но проблема в том, что часто возникает баг спустя какое-то время:

    • Допустим у нас есть два совершенно разных проекта.
    • Оба работают какое-то время.
    • Потом возникает в логе ошибка, что какой-то элемент не найден к примеру, а у нас для обработки ошибок установлен заранее manual, чтобы посмотреть из-за чего ошибка к примеру.
    • (BAG) Открываем браузер и видим, что там профиль и сессия из ДРУГОГО проекта или из этого же, но другого ПОТОКА.
    • (BAG) Либо открываем браузер, а BAS просто висит на странице и с элементами взаимодействие невозможно.

    К сожалению отследить это и как-то понять, осознать и пофиксить - не представляется возможным, так как сама природа этого бага мне непонятна.

    Но на днях я нашёл способ как 100% вызвать этот(или возможно ещё другой схожий баг) в BAS.
    Симптомы очень схожи, поэтому возможно что это он и есть:

    • Достаточно создать действие manual browser где-нибудь и загрузить через него файл в форме на любом сайте.
    • (BAG) После чего многие действия перестанут работать: смена Proxy; смена Fingerprint; обновление переменных вроде как работает, но если подставить их в Execute - действие проигнорируется и т.д.

    d89a6b73-5c60-4ca1-be18-82e6beb42fbf.gif
    Файл проекта для демонстрации бага: bas_profile_and_actions_bag.xml

    Собственно вопрос: Как почистить браузер максимально близко к изначальному без рестарта браузера, без смены профиля, без нового потока и без этого бага?

  • @denispetrov Ваш скрипт создан на 25.5.0 версии BAS, на данный момент последняя версия BAS 26.3.0. Проверяли ли вы работу вашего скрипта в последней версии?

    Но на днях я нашёл способ как 100% вызвать этот(или возможно ещё другой схожий баг) в BAS.
    Симптомы очень схожи, поэтому возможно что это он и есть:

    Достаточно создать действие manual browser где-нибудь и загрузить через него файл в форме на любом сайте.
    (BAG) После чего многие действия перестанут работать: смена Proxy; смена Fingerprint; обновление переменных вроде как работает, но если подставить их в Execute - действие проигнорируется и т.д.

    Проверил в 26.3.0 версии, после указания файла на сайте в режиме ручного управления все последующие действия работают корректно

  • @Fox благодарю за оперативный ответ.

    проверил в крайней версии BAS:

    • Проблема смены Proxy решилась
    • (BAG) Execute on every page действие не применилось и BAS его проигнорировал, наследовав вариант до загрузки файла в мануале

    fcfaace7-af10-46c2-a3b7-cbdeb70e1b42-image.png

  • @denispetrov said in Критический баг в BAS / Наследует старые переменные-профили и игнорирует многие действия (при этом продолжая "работать"):

    @Fox благодарю за оперативный ответ.

    проверил в крайней версии BAS:

    • Проблема смены Proxy решилась
    • (BAG) Execute on every page действие не применилось и BAS его проигнорировал, наследовав вариант до загрузки файла в мануале

    После перехода на другую версию BAS вы обновили все действия в проекте?

  • @Fox так точно

    37f3dcca-d500-4ae2-b595-294e82b03433-image.png

  • @denispetrov said in Критический баг в BAS / Наследует старые переменные-профили и игнорирует многие действия (при этом продолжая "работать"):

    (BAG) Execute on every page действие не применилось и BAS его проигнорировал, наследовав вариант до загрузки файла в мануале

    Как можно повторить эту проблему намерено? Отдельно только её

  • @Fox пока я только нашёл единственный способ воспроизвести баг намеренно через загрузку файла в любую форму через действие Manual в BAS

    в случае успеха(если проигнорировать загрузку файла в мануал) должно вывести:

    [511309941] [00:53:23] Thread #1 : ТЕСТ 1 ПРОЙДЕН
    [547091972] [00:53:25] Thread #1 : ТЕСТ 2 ПРОЙДЕН
    

    в случае бага(если загрузить файл через мануал) выведет старое действие Execute соответственно:

    [511309941] [00:53:47] Thread #1 : ТЕСТ 1 ПРОЙДЕН
    [547091972] [00:53:50] Thread #1 : ТЕСТ 1 ПРОЙДЕН
    

    файл: bas_problem_execute.xml

  • @denispetrov said in Критический баг в BAS / Наследует старые переменные-профили и игнорирует многие действия (при этом продолжая "работать"):

    @Fox пока я только нашёл единственный способ воспроизвести баг намеренно через загрузку файла в любую форму через действие Manual в BAS

    в случае успеха(если проигнорировать загрузку файла в мануал) должно вывести:

    [511309941] [00:53:23] Thread #1 : ТЕСТ 1 ПРОЙДЕН
    [547091972] [00:53:25] Thread #1 : ТЕСТ 2 ПРОЙДЕН
    

    в случае бага(если загрузить файл через мануал) выведет старое действие Execute соответственно:

    [511309941] [00:53:47] Thread #1 : ТЕСТ 1 ПРОЙДЕН
    [547091972] [00:53:50] Thread #1 : ТЕСТ 1 ПРОЙДЕН
    

    файл: bas_problem_execute.xml

    Спасибо за описание проблемы и тестовый скрипт, проблему воспроизвёл и передал разработчику. Остальные проблемы из вашего первого сообщения присутствуют в 26.3.0 версии BAS?

  • @Fox благодарю со содействие!

    к сожалению, как и сказал, определить точно, что именно вызывало баг практически невозможно, возможно что проблема была где-то в реализации взаимодействия между БАС и браузером, я попробую отключить принудительный Рестарт и вновь запустить проекты уже на новом БАСЕ, возможно ошибка и не всплывёт, если бы она возникала 100% - я бы с радостью поделился информацией, но увы, она всегда возникала спонтанно

    по моим наблюдениям и насколько я знаю, БАС создаёт профили рандомно и с проверкой, т.е. вариант что двум разным потокам или проектам присвоется одинаковый воркер - исключен
    если это утверждение верно, значит то что я обнаружил с мануалом может быть связано и с корнем тех проблем

    поэтому я очень надеюсь, что их удастся решить по "цепной реакции", так сказать, если и в новой версии они всё ещё присутствуют конечно

  • @denispetrov

    Есть вариант обходного пути, создавать все таки каждый раз новый временный профиль.
    Можно создавать на RAM диске, чтобы работало быстрее.

    Можно заранее создать образ(папка) чистого профиля и копировать его с места на место.

    Я так делал, работало это быстро и стабильно.

  • @sergerdn как создавать в RAM?

  • Использую ImDisk. Легкий и бесплатный.

  • @Fox
    до сегодняшнего дня использовал стандартную настройку с временными профайлами, каждый профайл - 52-57 мегабайт
    сегодня сделал виртуальный диск из RAM - каждый профайл туда пишется 2,5MB - разница в 20 раз меньше
    тестово сделал разок писать профайлы не в RAM диск а на флешку - также как и раньше - 57MB
    т.е. почемуто в рам диск пишутся профайлы в десятки раз меньше с того же проекта.
    почему? может оно должно именно так и работать но работает только почему-то на РАМ дисках, а может наоборот что-то нужное не дописывается в профайлы на РАМ
    вобщем больше вопросов чем ответов
    а так то конечно сразу видно полегче басу стало - и оперативка не перегружается так сильно и работает шустрее, посмотрю еще что с траффом может за сутки и он уменьшится теперь)
    но что-то тут явно "не чисто"), или бас тупит в стандартных своих настроках, не может быть такой разницы только от смены диска для профайлов

  • @basuser123
    Насколько я понял вы имеете ввиду просто профили? Или именно временные профили?

  • @m4zuper
    ну вот те профили, которые создаются при запуске нового потока, и удаляются сразу после его завершения, и если по умолчанию, то пишутся в папку prof
    я так понимаю что "временные"

  • BAS и SQL

    Поддержка
    0 Votes
    19 Posts
    2564 Views
  • 0 Votes
    3 Posts
    1343 Views
  • 0 Votes
    12 Posts
    2622 Views
  • 1 Votes
    2 Posts
    1043 Views
  • 0 Votes
    4 Posts
    2425 Views