Непонятное поведение ИР
|
|
Simol | Дата: Вт, 02.11.2021, 20:08:24 | Сообщение # 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:45 | Сообщение # 2 |
Генералиссимус
Группа: Администраторы
Сообщений: 6947
Репутация: 184
Статус: Оффлайн
| В ИР скорее всего нет ошибки. Вероятно в кластере рабочий сервер так настроен. Нужно увеличить или отключить это ограничение там. Заодно интересно узнать, на каком лимите ошибка перестанет возникать. "Завален ошибкой" - это сколько раз и за какой интервал времени?
|
|
| |
Simol | Дата: Вт, 02.11.2021, 21:41:12 | Сообщение # 3 |
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
| Цитата tormozit (  ) "Завален ошибкой" - это сколько раз и за какой интервал времени?

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

Добавлено (02.11.2021, 23:09) --------------------------------------------- И почему не хватает памяти всегда именно для СтрРазделитьЛкс(), там же безобидная функция. Может там передается параметрмо чтото огромное? Покопаю в эту сторону
Сообщение отредактировал Simol - Вт, 02.11.2021, 23:12:37 |
|
| |
tormozit | Дата: Вт, 02.11.2021, 23:16:24 | Сообщение # 6 |
Генералиссимус
Группа: Администраторы
Сообщений: 6947
Репутация: 184
Статус: Оффлайн
| Цитата Simol (  ) А вот таке поведение штатно? Вероятно да. Если платформе не хватает памяти, то он сильно сокращает размер кэша повторных вызовов функций. Поэтому кэш метаданных сеанса не может закрепиться в нем. Обращения к этим данным довольно частые.
|
|
| |
tormozit | Дата: Вт, 02.11.2021, 23:18:37 | Сообщение # 7 |
Генералиссимус
Группа: Администраторы
Сообщений: 6947
Репутация: 184
Статус: Оффлайн
| Цитата Simol (  ) не хватает памяти всегда именно для СтрРазделитьЛкс() Судя по твоему скриншоту, это не так. Там много подобных ошибок и на других строках кода.
|
|
| |
Simol | Дата: Вт, 02.11.2021, 23:46:55 | Сообщение # 8 |
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
| Там из разных местах вызывается СтрРазделитьЛкс() и память заканчивается
|
|
| |
tormozit | Дата: Вт, 09.11.2021, 23:17:35 | Сообщение # 9 |
Генералиссимус
Группа: Администраторы
Сообщений: 6947
Репутация: 184
Статус: Оффлайн
| Подозреваю, проблема самоустранилась после перезапуска службы или ОС сервера?
|
|
| |
Simol | Дата: Чт, 11.11.2021, 20:37:38 | Сообщение # 10 |
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
| К сожалению я просто в СостояниеПодготовкиКэшМДСеансаЛкс() в начале добавил и больше не исследовал.
Предварительно смотрел, что приходит СтрРазделитьЛкс() Приходила только строка и никогда огромная строка не попадалась, чтобы предполагать, что реально нехватило памяти.
Код Если ТипЗнч(Стр) <> Тип("Строка") Тогда ОбщегоНазначения.СообщитьОбОшибке("В СтрРазделитьЛкс пришла не строка: " + ТипЗнч(Стр)); ИначеЕсли СтрДлина(Стр) > 150 Тогда ОбщегоНазначения.СообщитьОбОшибке("В СтрРазделитьЛкс пришла длинная строка: " + СтрДлина(Стр) + " " + Лев(Стр, 30)); КонецЕсли;
P.S. у меня ОбщегоНазначения.СообщитьОбОшибке при фоновом задании переносит ошибку в ЖР
Сообщение отредактировал Simol - Чт, 11.11.2021, 20:38:25 |
|
| |
tormozit | Дата: Чт, 11.11.2021, 20:46:53 | Сообщение # 11 |
Генералиссимус
Группа: Администраторы
Сообщений: 6947
Репутация: 184
Статус: Оффлайн
| В ИР утечки нет. Это происходит из-за нехватки памяти на сервере. После перезапуска службы или ОС сервера думаю проблема бы самоустранилась. А твое исправление кажется сулит больше проблем, чем их решений. Теперь ИР тебя будет заставлять ждать при открытии "первой" формы в сеансе для построения этого самого кэша.
|
|
| |
Simol | Дата: Пт, 19.11.2021, 22:40:21 | Сообщение # 12 |
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
| Обновился до 6.18.2 За это время поидее серере перегружали (у меня нет доступа) Посмотрю что будет
И увидел код в ирКеш.КэшМДСеансаВФонеЛкс() строка 1162
Код ирОбщий.КэшМДСеансаВФонеЛкс();
Вызов функции, у которой опязательный параметр. Но суди по
Код #Если Сервер И Не Сервер Тогда
она не работает и наверно нужна для какогото поиска при парсинге?
|
|
| |
tormozit | Дата: Сб, 20.11.2021, 07:39:15 | Сообщение # 13 |
Генералиссимус
Группа: Администраторы
Сообщений: 6947
Репутация: 184
Статус: Оффлайн
| https://infostart.ru/1c/articles/922320/
|
|
| |
Simol | Дата: Сб, 20.11.2021, 22:18:40 | Сообщение # 14 |
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
| ух ты. спасибо! Добавлено (25.11.2021, 18:48) --------------------------------------------- Да, вопрос к ИР снимаю однозначно. После обновление ИР и скорее всего выполненного перезапуска сервера 1с проблема выскочила 1 раз. Потому после обновления 1С (сейчас 8.3.10) надеюсь на полную нормализацию.
|
|
| |