Open Lelushka opened 2 months ago
У меня на одном из серверов аналогичная ошибка периодически воспроизводится на версии vanessa-runner v1.11.11 Иногда решает повторный перезапуск джобы, иногда перезапуск службы 1С с чисткой сеансового кэша. В некоторых случаях ничего не помогает. Платформа 8.3.25.1257. На других стендах ошибка не воспроизводится при аналогичном окружении. Строка запуска vrunner session kill --ras server:1545 --cluster-admin "" --cluster-pwd "" --db infobase --lockendclear --lockmessage "Происходит обновление 1С на новый релиз!" --uccode "74" --db-user --db-pwd --v8version "8.3.25.1257" --debuglogfile log.txt
vanessa-runner v1.11.11 ИНФОРМАЦИЯ - Получаю список кластеров ИНФОРМАЦИЯ - Получаю список баз кластера ИНФОРМАЦИЯ - Сеансы запрещены ИНФОРМАЦИЯ - Отключаю существующие сеансы ИНФОРМАЦИЯ - Отключаю сеанс: 1 [DefUser] (BackgroundJob) ИНФОРМАЦИЯ - Отключаю сеанс: 4 [DefUser] (BackgroundJob) ИНФОРМАЦИЯ - Отключаю сеанс: 2 [DefUser] (BackgroundJob) ИНФОРМАЦИЯ - Отключаю сеанс: 3 [DefUser] (BackgroundJob) ИНФОРМАЦИЯ - Пауза перед отключением соединений ИНФОРМАЦИЯ - Получаю список рабочих процессов... ИНФОРМАЦИЯ - Получаю список соединений рабочего процесса... КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\vanessa-runner\src\Классы\КомандаУправлениеСеансами.os / Ошибка в строке: 294 / Попытка удаления сеансов не удалась. Текст ошибки: Сообщение от процесса код:-1 процесс: Ошибка при получении значения из базы данных. Возможной причиной является отсутствие установленного Microsoft SQL Server Native Client.}
ps: на тестовом стенде обновил oscript до 1.9.1.7, vrunner до 2.2.22 (через opm) платформа 8.3.25.1257. Ошибка так же стала воспроизводиться на ранее работавших скриптах.
Вариант исправления В классе vanessa-runner КомандаУправлениеСеансами.os добавить условие РабочийПроцесс["reserve"] = "no"
`Процедура ОтключитьСоединенияСРабочимиПроцессами()
Процессы = ПолучитьСписокРабочихПроцессов();
Для Каждого РабочийПроцесс Из Процессы Цикл Если РабочийПроцесс["running"] = "yes" И РабочийПроцесс["reserve"] = "no" Тогда
СписокСоединений = ПолучитьСоединенияРабочегоПроцесса(РабочийПроцесс);
Для Каждого Соединение Из СписокСоединений Цикл
// Попытка
РазорватьСоединениеСПроцессом(РабочийПроцесс, Соединение);
// Исключение
// Лог.Ошибка(ОписаниеОшибки());
// КонецПопытки;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры`
Мы получаем список рабочих процессов, а потом для каждого процесса отключаем соединения в цикле. В моем случае ошибка возникает, когда мы получаем процесс сервера лицензирования, а он не работает и не настраивался на работу с СУБД. Такой вариант работает, но нужно подумать, возможно по каким то другим критериям отсеивать процесс сервера лицензирования или на второй сервер установить все необходимые компоненты.
По-моему нормальное решение. reserve - само то (спасибо за идею).
PS: Устанавливать на сервер лицензировая клиент - это какая-то крайность.
UPD: беру слова обратно.
Процесс на сервере лицензирования вполне себе РабочийПроцесс["reserve"] = "no"
и ни чем не отличается от других процессов ;(
Добрый день, на новом релизе 2.2.2 стабильная ошибка c командой session kill
10:35:53 C:\jenkins\workspace\UT_KG_Refresh-RefreshDB->vrunner session kill --with-nolock --ras "сервер" --db "база" --db-user "Администратор" --db-pwd "**" --uccode "CICD" --debuglog 10:35:53 vanessa-runner v2.2.2 10:35:54 ИНФОРМАЦИЯ - Отключаю существующие сеансы 10:35:54 ИНФОРМАЦИЯ - Получаю список кластеров 10:35:54 ИНФОРМАЦИЯ - Получаю список баз кластера 10:35:56 ИНФОРМАЦИЯ - Пауза перед отключением соединений 10:36:06 ИНФОРМАЦИЯ - Получаю список рабочих процессов... 10:36:06 ИНФОРМАЦИЯ - Получаю список соединений рабочего процесса... 10:36:06 ИНФОРМАЦИЯ - Получаю список соединений рабочего процесса... 10:36:07 ИНФОРМАЦИЯ - Попытка удаления сеансов №1 неудачна. Текст ошибки: 10:36:07 Сообщение от процесса 10:36:07 код:-1 процесс: Ошибка при получении значения из базы данных. Возможной причиной является отсутствие установленного Microsoft SQL Server Native Client. 10:36:07 КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\vanessa-runner\src\Классы\КомандаУправлениеСеансами.os / Ошибка в строке: 303 / Попытка удаления сеансов не удалась. Текст ошибки: 10:36:07 Сообщение от процесса 10:36:07 код:-1 процесс: Ошибка при получении значения из базы данных. Возможной причиной является отсутствие установленного Microsoft SQL Server Native Client.}**
Откатываю на 1.11.11 - все хорошо, работает штатно.