Утечка памяти или из за чего происходит сбой системы?
-
При длительной работы скрипта (после часов 6-8) и постоянной нагрузки в 60-70% системы, происходит непонятный сбой системы. (Windows Sever 19-22, Windows 10-11 у всех симптомы одинаковые)
В проводнике в строке "путь" появляются артефакты:
Не нажимается перезапуск сервера, курсором мыши, а нажимается только через стрелки на клавиатуре.
Бывает еще отрубается буфер обмен с сервером, но эта проблема плавающая, не всегда появляется.
Но перейдем к "утечке памяти". Так же из за этой проблемы, полностью переставал работать OpenVPN неотъемлемая часть купленого скрипта, по этому была создана тема по данной проблеме github.com/OpenVPN/openvpn-gui/issues/577 изначально думал проблема в OpenVPN, но позже запускал скрипт на Bas без него и проблема никуда не пропала. В итоге вот такой ответ дал разработчик OpenVPN:
Хорошо, вот ошибка: StatusDialogFunc:1974 SetProp returned error(0x00000008) Это означает, что у нас нет памяти! Что-то дает утечку памяти в вашей настройке, и когда системе не хватает памяти, происходит сбой. Возможно, ваш скрипт планировщика дает утечку, так как это происходит после нескольких подключений. После перезагрузки продолжайте следить за использованием памяти и посмотрите, какой процесс потребляет память. Ошибка в OpenVPN-GUI заключается в том, что он не проверяет возвращаемое значение SetProp или GetProp и, таким образом, происходит сбой при попытке разыменовать указатель, возвращаемый GetProp. Даже если мы проверим это, единственное, что мы можем сделать, это зарегистрировать ошибку и прервать это соединение, как это делает мой тестовый исполняемый файл. Конечно, мы не должны разбиться.
от ОС получена ошибка, она зарегистрирована, графический интерфейс прерывает это соединение и продолжает работу. Возвращаемая ошибка (0x8) — «ERROR_NOT_ENOUGH_MEMORY», и невозможно продолжить соединение, если SetProp() завершается ошибкой с этой ошибкой. Вы знаете, что у вас есть другие системы, где графический интерфейс работает без ошибок, и даже на этой машине он работает при перезагрузке после того, как проводник вышел из-под контроля, поэтому я не могу придумать, как помочь. На самом деле ошибка может быть вызвана целым рядом причин - может быть исчерпаны дескрипторы или достигнут какой-то другой глобальный предел, не обязательно нехватка памяти в том смысле, в каком вы можете себе это представить. Но для OpenVPN-GUI это ошибка, которую нельзя обойти. Вам нужно будет выяснить, почему ОС возвращает эту ошибку.
И добавил в OpenVPN обнаружение этой ошибки, чтобы тот не крашился, а давал возможность продолжить работу после исправление проблемы без перезагрузки ос
https://github.com/OpenVPN/openvpn-gui/commit/152130e003682b163f4057d36264ff45f77c05e9Вопрос: как решить эту проблему с "утечrой памяти"? или это проблема bas в целом?
-
@NoticeF Какую версию BAS используете? Используете ли в скрипте модуль SQL?
-
@Fox 25.3.8 версия на счет модуля не могу посмотреть, скрипт с лицензией, у меня только лог пас.
-
@NoticeF said in Утечка памяти или из за чего происходит сбой системы?:
@Fox 25.3.8 версия на счет модуля не могу посмотреть, скрипт с лицензией, у меня только лог пас.
Есть возможность связаться с автором скрипта? Без него вы вряд ли сможете что-то исправить
-
@Fox отправил ему информацию, надеюсь как проснется ответит.
-
this happens to me aswell, a daily occurrence. I make all my own scripts. Still unsure why this happens.
-
@hellomembersha
Do you use SQL module in your project? If yes, then update it - https://community.bablosoft.com/topic/23154/память-течет-на-последней-версии/7
-
@Fox SQL не используется
-
@FreddieRUS, а какие нибудь другие модули использующие Node.js (Excel, FTP, Archive и другие)? Или свой Node.js код использующий файлы? Потому что проблема обноруженная в SQL модуле, актуальна для всего Node.js кода использующего дополнительные файлы.
-
@GhostZ из модулей помимо стандартных только Logger используется, в основном для скрытия сообщений "ожидание элемента ..." в логе
-
@FreddieRUS said in Утечка памяти или из за чего происходит сбой системы?:
@GhostZ из модулей помимо стандартных только Logger используется, в основном для скрытия сообщений "ожидание элемента ..." в логе
Он точно не текет )
-
Больше нет предположений?
-
@NoticeF
Самым лучшим вариантом будет предоставить поддержке исходник скрипта для тестирования и выявления причины утечки. Можете отправить исходник мне или передать его через Fox'а, если не доверяете мне.
-
@m4zuper исходник у @FreddieRUS он владелец скрипта
-
тоже была черная полоса на адресной строке год назад, когда скрипт с браузером работал. даже раз в 10 дней стал синий экран смерти вылетать. а потом ssd умер (хостер восстановил с рейда, так что все ок). не пугаю. просто в тот момент решил win2019 сменить на win2022. ну, и перевел скрипт на запросы и уж забыл про это, пока вашу картинку не увидел.
все совпадения случайны: с утечками не побороться. в последних версиях БАС память растет от http-клиента, похоже, что от действия "сброс клиента", как будто предыдущая копия хттп-клиента со всеми куками и ответами так и остается в памяти, даже после перезапуска потока. (в моем случае примерно с ляма сброшенных хттп-клиентов БАС раздувается до 3,5 Гб)
-
@oleg4ever у меня скрипт работает в 3к потоков на запросах по несколько суток, не замечал роста памяти. Но справедливости ради сброс не используется. Хотя я сомневаюсь что http клиент менялся за последнее время.
-
@UserTrue нормально ты так абузишь кого-то :) 3k на зпросах это оказывается реально для баса :)
-
@Bigma 3 окна по 1к, могу ещё запустить )
-
@oleg4ever said in Утечка памяти или из за чего происходит сбой системы?:
все совпадения случайны: с утечками не побороться. в последних версиях БАС память растет от http-клиента, похоже, что от действия "сброс клиента", как будто предыдущая копия хттп-клиента со всеми куками и ответами так и остается в памяти, даже после перезапуска потока. (в моем случае примерно с ляма сброшенных хттп-клиентов БАС раздувается до 3,5 Гб)
Звучит правдоподобно, у меня есть такой скрипт на запросах, именно на том серваке используется сброс и ловил краш баса раз в дней 5. Я просто увеличил файл подкачки до 100 Гб и пока помогло 😁
-
This post is deleted!