Четверг, 16.05.2024, 13:58
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Основной » Прочее » Непонятное поведение ИР
Непонятное поведение ИР
SimolДата: Вторник, 02.11.2021, 20:08 | Сообщение # 1
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
Платформа: 8.3.10.2699
Режим БД: клиент-серверный
Конфигурация. Название: Управление торговым предприятием для Украины, редакция 1.1 (4.0.2.2)
Конфигурация. Основной режим запуска: Обычное приложение
Конфигурация. Вариант встроенного языка: Русский
Конфигурация. Режим управления блокировкой данных: Управляемый
Конфигурация. Режим совместимости: НеИспользовать
Инструменты разработчика. Версия: Конфигурация 6.14.1
Инструменты разработчика. Инструмент: Прочее
Инструменты разработчика. Перехват клавиатурного ввода: Нет
Инструменты разработчика. Объекты на сервере: Нет
Инструменты разработчика. Асинхронность запрещена: Нет
Инструменты разработчика. Разрешены имитаторы: Да
Клиент. ОС: Microsoft Windows Server 2019 Standard 64-bit Русский
Клиент. Приложение: Обычное приложение 64б
Клиент. Проверка модальных вызовов: Нет
Клиент. Язык интерфейса конфигурации: ru
Клиент. Язык интерфейса системы: ru
Клиент. От имени администратора Windows: Нет
Сервер. ОС: Microsoft Windows Server 2019 Standard 64-bit НеРусский-0409
Сервер. Процесс: 64б
Сервер. Отладка: tcp

Привет!

Журнал регистрации завален ошибкой в безобидном месте.

Цитата
Подготовка кэша метаданных сеанса (ИР)
{ОбщийМодуль.ирОбщий.Модуль(13404)}: Ошибка при вызове метода контекста (СтрРазделитьЛкс)
по причине:
Превышен максимальный расход памяти сервера за один вызов


Контекст:

Код

  Если ФрагментыИмениТаблицы <> Неопределено Тогда
     Фрагменты = ФрагментыИмениТаблицы;
   Иначе
      Фрагменты = ирОбщий.СтрРазделитьЛкс(ПолноеИмяТаблицы);
   КонецЕсли;

Есть ли известная причина/способ обхода или разбираться?
 
tormozitДата: Вторник, 02.11.2021, 20:22 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6201
Репутация: 159
Статус: Оффлайн
В ИР скорее всего нет ошибки. Вероятно в кластере рабочий сервер так настроен. Нужно увеличить или отключить это ограничение там. Заодно интересно узнать, на каком лимите ошибка перестанет возникать.
"Завален ошибкой" - это сколько раз и за какой интервал времени?

Прикрепления: 4349983.png (47.8 Kb)
 
SimolДата: Вторник, 02.11.2021, 21:41 | Сообщение # 3
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
Цитата tormozit ()
"Завален ошибкой" - это сколько раз и за какой интервал времени?





Сообщение отредактировал Simol - Вторник, 02.11.2021, 21:44
 
tormozitДата: Вторник, 02.11.2021, 22:16 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 6201
Репутация: 159
Статус: Оффлайн
Каково соотношение всей физической памяти и ее свободной части на сервере приложений в момент ошибки?
Попробуй выполнить перезапуск агента сервера 1С. Если после этого проблема сохранится, то попробуй задать этому параметру явное значение (например >1ГБ).
 
SimolДата: Вторник, 02.11.2021, 22:32 | Сообщение # 5
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
А вот таке поведение штатно?



Добавлено (02.11.2021, 23:09)
---------------------------------------------
И почему не хватает памяти всегда именно для СтрРазделитьЛкс(), там же безобидная функция. Может там передается параметрмо чтото огромное? Покопаю в эту сторону


Сообщение отредактировал Simol - Вторник, 02.11.2021, 23:12
 
tormozitДата: Вторник, 02.11.2021, 23:16 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 6201
Репутация: 159
Статус: Оффлайн
Цитата Simol ()
А вот таке поведение штатно?
Вероятно да. Если платформе не хватает памяти, то он сильно сокращает размер кэша повторных вызовов функций. Поэтому кэш метаданных сеанса не может закрепиться в нем. Обращения к этим данным довольно частые.
 
tormozitДата: Вторник, 02.11.2021, 23:18 | Сообщение # 7
Генералиссимус
Группа: Администраторы
Сообщений: 6201
Репутация: 159
Статус: Оффлайн
Цитата Simol ()
не хватает памяти всегда именно для СтрРазделитьЛкс()
Судя по твоему скриншоту, это не так. Там много подобных ошибок и на других строках кода.
 
SimolДата: Вторник, 02.11.2021, 23:46 | Сообщение # 8
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
Там из разных местах вызывается СтрРазделитьЛкс() и память заканчивается
 
tormozitДата: Вторник, 09.11.2021, 23:17 | Сообщение # 9
Генералиссимус
Группа: Администраторы
Сообщений: 6201
Репутация: 159
Статус: Оффлайн
Подозреваю, проблема самоустранилась после перезапуска службы или ОС сервера?
 
SimolДата: Четверг, 11.11.2021, 20:37 | Сообщение # 10
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
К сожалению я просто в СостояниеПодготовкиКэшМДСеансаЛкс() в начале добавил
Код
Возврат Неопределено;

и больше не исследовал.

Предварительно смотрел, что приходит СтрРазделитьЛкс()
Приходила только строка и никогда огромная строка не попадалась, чтобы предполагать, что реально нехватило памяти.

Код

  Если ТипЗнч(Стр) <> Тип("Строка") Тогда
                  ОбщегоНазначения.СообщитьОбОшибке("В СтрРазделитьЛкс  пришла не строка: " + ТипЗнч(Стр));
   ИначеЕсли СтрДлина(Стр) > 150 Тогда
                  ОбщегоНазначения.СообщитьОбОшибке("В СтрРазделитьЛкс  пришла длинная строка: " + СтрДлина(Стр) + " " + Лев(Стр, 30));
   КонецЕсли;

P.S. у меня ОбщегоНазначения.СообщитьОбОшибке при фоновом задании переносит ошибку в ЖР


Сообщение отредактировал Simol - Четверг, 11.11.2021, 20:38
 
tormozitДата: Четверг, 11.11.2021, 20:46 | Сообщение # 11
Генералиссимус
Группа: Администраторы
Сообщений: 6201
Репутация: 159
Статус: Оффлайн
В ИР утечки нет. Это происходит из-за нехватки памяти на сервере. После перезапуска службы или ОС сервера думаю проблема бы самоустранилась. А твое исправление кажется сулит больше проблем, чем их решений. Теперь ИР тебя будет заставлять ждать при открытии "первой" формы в сеансе для построения этого самого кэша.
 
SimolДата: Пятница, 19.11.2021, 22:40 | Сообщение # 12
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
Обновился до 6.18.2
За это время поидее серере перегружали (у меня нет доступа)
Посмотрю что будет

И увидел код в
ирКеш.КэшМДСеансаВФонеЛкс()
строка 1162


Код
ирОбщий.КэшМДСеансаВФонеЛкс();


Вызов функции, у которой опязательный параметр. Но суди по 
Код
#Если Сервер И Не Сервер Тогда

она не работает и наверно нужна для какогото поиска при парсинге?
 
tormozitДата: Суббота, 20.11.2021, 07:39 | Сообщение # 13
Генералиссимус
Группа: Администраторы
Сообщений: 6201
Репутация: 159
Статус: Оффлайн
https://infostart.ru/1c/articles/922320/
 
SimolДата: Суббота, 20.11.2021, 22:18 | Сообщение # 14
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
ух ты. спасибо!

Добавлено (25.11.2021, 18:48)
---------------------------------------------
Да, вопрос к ИР снимаю однозначно.
После обновление ИР и скорее всего выполненного перезапуска сервера 1с проблема выскочила 1 раз.
Потому после обновления 1С (сейчас 8.3.10) надеюсь на полную нормализацию.

 
Форум » Основной » Прочее » Непонятное поведение ИР
  • Страница 1 из 1
  • 1
Поиск: